Я только что перенес сайт на основе пользовательской CMS на новый сервер.После миграции я получаю уведомления и предупреждения по всей административной области, где контент может быть отредактирован.
Notice: Trying to get property of non-object in database.php on line 69
Notice: Undefined index: in database.php on line 69
Ниже приведены функции, которые используются в процессе:
function dbQuerySafener($query,$params=false) {
$link= db_connect();
if ($params) {
foreach ($params as &$v) {
$v = mysqli_real_escape_string($link,$v);
}
$sql_query = vsprintf( str_replace("?","'%s'",$query), $params );
} else {
$sql_query = $query;
}
return $sql_query;
}
// query returning ARRAY (many rows)
function dbArray($query,$params=false) {
$link= db_connect();
$table_result=array();
$r=0;
$sql = dbQuerySafener($query, $params);
$result = mysqli_query($link,$sql) or die(mysqli_error($link)."
<br>".$sql);
while($row = mysqli_fetch_assoc($result)) {
$arr_row=array();
$c=0;
while ($c < mysqli_num_fields($result)) {
$col = mysqli_fetch_field($result);
$arr_row[$col -> name] = $row[$col -> name]; // line 69
$c++;
}
$table_result[$r] = $arr_row;
$r++;
}
return $table_result;
}
Он работает следующим образом: SQL-запрос будет передан функции dbArray, например:
$sql = "SELECT `id`, `emailAddress`, `name` FROM `gcms_users`
WHERE `active`=?";
$data = dbArray($sql, array(1));
ОЖИДАЕМЫЙ РЕЗУЛЬТАТ: две вышеупомянутые функции будут извлекать результаты из базы данных, которая должна содержать имя поля и его значение, например:
Array ( [0] => Array ( [id] => 1 [emailAddress] => admin@email.com
[name] => John ) [1] => Array ( [id] => 1 [emailAddress] =>
paul@email.com [name] => Paul ) )
АКТУАЛЬНЫЙ РЕЗУЛЬТАТ:
Array ( [0] => Array ( [id] => 1 [emailAddress] => admin@email.com [name] => John ) [1] => Array ( [] => ) )
Существует некоторая проблема с функцией dbArray () при извлечении строк, но я не понимаю, чего здесь не хватает.Ваша помощь будет высоко оценена.
Спасибо.