2014-08-31 3 views
1

Вот еще одно преобразование MySql в MySqli, с которым я сталкиваюсь.Преобразование функции из MySql в MySqli

Исходный код:

define('DB_DEFAULT_FLAG', MYSQL_ASSOC); 
function resource_get($resource = NULL,$flag = DB_DEFAULT_FLAG) { 
    if(!$resource) $resource = $this->last_resource; 
     return mysql_fetch_array($resource,$flag); 
     } 

Новый код:

define('DB_DEFAULT_FLAG', MYSQL_ASSOC); 

function resource_get($resource = NULL, $flag = DB_DEFAULT_FLAG) { 
    if (!$resource) 
     $resource = $this -> last_resource;//print_r($resource); 
    $return = mysqli_fetch_array($resource, $flag) or print("No workie!"); 
    var_dump($return); 
    return $return; 
} 

В этом случае вызов функции неудачен с ответом «Нет Workie» и значение NULL в $ возврата переменная. Когда я выполняю оператор print_r ($ resource), данные кажутся правильными. Что я делаю не так? Похоже, что инструкция mysqli_fetch_array терпит неудачу, но я не знаю, почему. Любые указатели? Либо mysqli_fetch_array, либо mysql_fetch_array, по-видимому, должен возвращать массив.

Вот пример того, что возвращает print_r ($ ресурса):

Array ([0] => Array ([category] => American Swords [graphics] => 1 [user] => bquinn [i] => 1 [i_categories] => 133 [i_users] => 13 [i_users_modified] => 1 [date_created] => 1266697482 [date_modified] => 1398983308 [active] => 1 [sold] => 0 [filename] => bq203.htm [code] => BQ203 [name] => American Militia-style NCO Sword [cost] => 325.00 [price] => 425.00 [description] => Interesting fluted aluminum handle with gilded brass pommel and crossguard. Blade of lenticular cross-section with no nicks, age-discolored in spots. Showing no maker's markings. Leather scabbard in good condition with brass throat and acorn-finialed chape. Overall 37 5/8", blade 28". [weight] => 5 [height] => 6 [width] => 6 [length] => 48 [keywords] => American sword eagle head sword militia sword american saber 
+1

Добавить отчет об ошибках в начало вашего файла (ов) сразу после открытия '

+0

являются флагом обоих флагов 'MYSQL_ASSOC' для nysql и nysqli одинаковыми? – Ghost

+0

убедитесь, что ресурс есть, я уверен, (поскольку мы не видим ошибок), что ваше соединение плохое. –

ответ

1

На новом коде, измените

define('DB_DEFAULT_FLAG', MySQL_ASSOC);

в

define('DB_DEFAULT_FLAG', MySQLi_ASSOC);

0

Базовым проблема здесь была с моей ошибкой проверка. Эта функция выполнялась в цикле while. Выполняя функцию print_r() или var_dump() в этой функции, последняя итерация цикла выбрасывает ошибку, потому что она закончилась из строк массива для обработки. Функция фактически работала нормально до конца (после исправления ошибки по умолчанию). Спасибо за вашу помощь!

Смежные вопросы