[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: INNER JOIN+WHERE
Миша
Почему, когда использую
$test2 = mysqli_query($konnect, "SELECT punkt.p03 
FROM region INNER JOIN punkt
ON region.id = punkt.p01
WHERE `r02` = '$test'"
;


Потом

if($test2) // всегда выполняется


Почему всегда возвращает правду, даже если условие не выполнилось?

_____________
Принимаю заказы, писать в ЛС
kaww
Медведь, Идем в мануал http://php.net/manual/ru/function.mysql-query.php
и читаем
Цитата
Возвращаемые значения ¶

Для запросов SELECT, SHOW, DESCRIBE, EXPLAIN и других запросов, возвращающих результат из нескольких рядов, mysql_query() возвращает дескриптор результата запроса (resource), или FALSE в случае ошибки.

а затем переходим по ссылке resource и смотрим, что же это за ресурс такой
http://php.net/manual/ru/language.types.resource.php

P.S. почему-то привел в пример mysql_query, но в любом случае это дает понять суть происходящего
stump
Потому, что
Цитата (www.php.net)
Возвращаемые значения:
Возвращает FALSE в случае неудачи. В случае успешного выполнения запросов SELECT, SHOW, DESCRIBE или EXPLAIN mysqli_query() вернет объект mysqli_result. Для остальных успешных запросов mysqli_query() вернет TRUE.


Т.е. FALSE надо ждать когда синтаксис вопроса неверен, в остальных случаях вернет объект mysqli_result или TRUE;

Надо:
if ( $mysqli -> errno )
throw new \Exception("MySQL error # " . $mysqli -> errno . ": " . $mysqli -> error )


Будет выполняться если во время выполнения запроса произошла ошибка.

_____________
Трус не играет в хокей
Миша
Цитата (kaww @ 27.03.2015 - 14:44)
Медведь, Идем в мануал http://php.net/manual/ru/function.mysql-query.php
и читаем
Цитата
Возвращаемые значения ¶

Для запросов SELECT, SHOW, DESCRIBE, EXPLAIN и других запросов, возвращающих результат из нескольких рядов, mysql_query() возвращает дескриптор результата запроса (resource), или FALSE в случае ошибки.

а затем переходим по ссылке resource и смотрим, что же это за ресурс такой
http://php.net/manual/ru/language.types.resource.php



Когда доставал из одной таблицы и там не было записей или не совпали по условию, возвращало - FALSE

_____________
Принимаю заказы, писать в ЛС
Миша
А нет, вспомнил я
 (bool)mysqli_num_rows 
использовал

_____________
Принимаю заказы, писать в ЛС
Быстрый ответ:

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