Skip to main content

Конференции

Просмотр конференции fido7.ru.php:

Предыдущее Следующее

Дата: 05 Jan 2019, 05:01:27
От: Anton Poletayev @ 2:5015/61.0
Кому: Sergey Anohin
Тема: wfido


Здpавствуй, Sergey!

Пятница 04 Января 2019 15:07, ты писал(а) Oleg Redut, в сообщении по ссылке area://ru.php?msgid=2:5034/10.1+99d9014b:

 SA>>> Видимо из базы не может достать что нужно, не прокатил фикс
 SA>>> по-быстрому :(
 OR>> Может $link тоже сделать global?

Да

 SA> function connect_to_sql($sql_host,$sql_base,$sql_user,$sql_pass){
 SA>       global $link;
 SA>       $link = mysqli_connect($sql_host, $sql_user, $sql_pass,
 SA> $sql_base) or die();
 SA>       $query = mysqli_query($link, "set names koi8r;");
 SA>       return $link;
 SA> }

 SA> Попробовал так, без результата :(
 SA> Почему-то мне думается, что оно вообще не пытается из базы достать:

1. Используйте объектно-ориентированный стиль
Example #1 mysqli::query() example
(Object oriented style)
http://php.net/manual/en/mysqli.query.php

Им гораздо проще работать, чем процедурно.

2. Для рефакторинга пахучего ядреного легаси я использую небольшую обертку,
содержащую класс-враппер Query и функции-хелперы, query() и database().
(могу поделиться, но это несложно и самому написать)

Это позволяет не таскать за собой соединение без нужды
и достаточно просто переписать все вызовы
(если повезет, мы делаем это регекспами сразу по всему коду
и потом просто просматриваем его на предмет доработки напильником)

В итоге, такой рефакторинг будет выглядеть примерно так:

function check_password($point, $password)
{
    // ...

    $users = query("SELECT * FROM `users` WHERE point='$point' AND password='$password' AND active='1'");

    echo 'Found: ' . $users->num_rows();

    // ...
}

 SA> Эхо пустоту выводит. Буду копать дальше, надо выводить на экран
 SA> переменные...Пока не знаю что еще придумать


С уважением - Anton

--- -
Origin: RooDZ!Soft Labs. (2:5015/61)

Предыдущее Следующее

К списку сообщений
К списку конференций