[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ошибка mysqli_num_rows
Страницы: 1, 2, 3
Zzepish
glock18
Спасибо) я вспомнил- имели быть место такие косяки. Но я так и не понял- как die(mysqli_error()) влияет. В простом mysql такогот не бывало
glock18
Цитата (Zzepish @ 21.06.2013 - 20:52)
glock18
Спасибо) я вспомнил- имели быть место такие косяки. Но я так и не понял- как die(mysqli_error()) влияет. В простом mysql такогот не бывало

Конечно, не понял. Еще одну подсказку дам - ошибка не зависит от функции в левой части по-большому счету wink.gif Будь там у тебя mysql_*, или mysqli_*, или какой-нибудь preg_replace, или вообще почти что угодно
curious
Zzepish
я тут прочитал про mysqli_error

Процедурный стиль
string mysqli_error ( mysqli $link )
Возвращает сообщение об ошибке последнего вызова функции MySQLi, который может успешно выполниться или провалиться.

Список параметров
link
Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect()

Тут идентификатор соединения явл. обязательным параметром вроде как.
В mysql сей параметр необязательный, т.к. использовалось последнее соединение.
В общем я не проверял твой код с die(), попробуй передать идентификатор.
Ну и как говорил glock18 зачем использовать die().
glock18
Цитата (curious @ 22.06.2013 - 08:37)
В mysql сей параметр необязательный, т.к. использовалось последнее соединение.

Это-то верно. Но mysqli_error вообще не выполняется тут.

Даю последнюю на этот раз подсказку - "дело в or"
curious
glock18
или)
Ну тогда как в документации лучше использовать хотя бы:
if (!mysqli_query($link, "запрос")) {
printf("Errormessage: %s\n", mysqli_error($link));
}
glock18
Цитата (curious @ 22.06.2013 - 08:58)
glock18
или)
Ну тогда как в документации лучше использовать хотя бы:
if (!mysqli_query($link, "запрос")) {
printf("Errormessage: %s\n", mysqli_error($link));
}

Если не брать во внимание, что вы не ловите результат mysqli_query, то такое бы исправило дело wink.gif

Цитата
или)

Потрясающе, что вы можете перевести or. Может быть тогда мне скажете, почему же без него там будет работать, а с ним нет? wink.gif
curious
glock18
Цитата
Если не брать во внимание, что вы не ловите результат mysqli_query, то такое бы исправило дело wink.gif

Я привел просто пример из документации по отношению к mysqli_error

Вот сижу думаю что, что то не так...
mysqli_query вернет либо mysqli_result в случае успеха, либо false в случае неудачи.
Значица Если(mysqli_result ИЛИ пустая строка)
или же Если(false ИЛИ string)
mysqli_num_rows ожидает mysqli_result а mysqli_query возвращает булове значение...
Поправьте меня если я что то неправильно понял
curious
блин...опять не то...
'SELECT * 
FROM
`pages`
WHERE
`url`="'.$page.'"
AND
`showable`=1
') or die(mysqli_error()) or die(mysqli_error())
и 2 раза or die(mysqli_error())


function mq($query){
global $db_connection;
return mysqli_query($db_connection,$query) or die(mysqli_error());
}

Функция возвращает Объект mysqli_result or die(mysqli_error())

Эх ну и кодец написал..
glock18
Цитата (curious @ 22.06.2013 - 09:14)
Вот сижу думаю что, что то не так...
mysqli_query вернет либо mysqli_result в случае успеха, либо false в случае неудачи.
Значица Если(mysqli_result ИЛИ пустая строка)
или же Если(false ИЛИ string)
mysqli_num_rows ожидает mysqli_result а mysqli_query возвращает булове значение...
Поправьте меня если я что то неправильно понял


Это все в целом верно. Следует из описаний функций с мануала. Но, смотрите, какая любопытная вещь - mysqli_num_rows получает не false, а true!

Еще одну подсказку даю:
вот это будет работать так, как вы ожидаете:
$result = mysqli_query($db_connection,$query) or die(mysqli_error());

а вот это не будет работать так, как вы ожидаете:
return mysqli_query($db_connection,$query) or die(mysqli_error());


Так в чем же дело то? :) Я не знаю, важно ли вам, но +1 в карму обещаю, если верный ответ дадите :)
curious
Функция возвращает Объект mysqli_result or die(mysqli_error())

mysqli_num_rows в качестве параметра ожидает идентификатор результата запроса
glock18
Цитата (curious @ 22.06.2013 - 09:24)
Функция возвращает Объект mysqli_result or die(mysqli_error())

и что это в итоге?
curious
mysqli_num_rows в качестве параметра ожидает идентификатор результата запроса
glock18
Цитата (curious @ 22.06.2013 - 09:27)
mysqli_num_rows в качестве параметра ожидает идентификатор результата запроса

Не вижу связи.

Я жду одного связного ответа, объясняющего все происходящее по шагам.
curious
glock18
сейчас будет)
curious
значит функция mq возвращает нам в случае успеха (mysql_result или пустая строка)
mysqli_num_rows ожидает mysql_result

Пример:

            function asda()
{
return '(object)mysql_result' or '';
}


echo asda(); // 1
if(asda())
{
echo 'asdas';
}

function asda()
{
return true or false;
}

if(asda())
echo 'Выполнится: порядок выполнения операторов (Ассоциативность - левая)';



левая or лог. операторы


другими словами mysqli_num_rows(1) // true
вместо обещанного mysql_result(идентификатора объекта) у нас true
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.