Mysql пустой запрос в php - что я получу?ID ресурса? - PullRequest
1 голос
/ 01 марта 2012

Я хочу проверить, является ли мой запрос пустым (без строк). Каков наилучший способ взломать его?

И что я получу в следующих «$ result» и «$ row» (вот как я собираюсь решить эту проблему - if($result) или, возможно, использование if($row) означает, что оно не пустое. Любые лучшие предложения ?

Спасибо.

       $result = mysql_query("SELECT * FROM table1 WHERE column1= '$var1'
                              AND column2 IN ('no','nein','nope')
                              AND timestamp BETWEEN '$date' AND NOW()"); 
       $row = mysql_fetch_assoc($result);    

Ответы [ 3 ]

2 голосов
/ 01 марта 2012

Проверьте это.

$result = mysql_query("SELECT * FROM table1 WHERE column1= '$var1'
                          AND column2 IN ('no','nein','nope')
                          AND timestamp BETWEEN '$date' AND NOW()"); 
$row = mysql_fetch_array($result);

if (mysql_num_rows($result) > 0) {
   echo $row['column name'];
}
2 голосов
/ 01 марта 2012

Вы можете использовать mysql_num_rows($result), чтобы получить количество строк, или вы можете увидеть, если $row === false;

$row будет первой строкой набора записей ИЛИ false, если запрос не дал результатов. $result будет ресурсом набора записей, если запрос завершится успешно false, если произошла ошибка.

Если вы находитесь на ранней стадии проекта и / или только учитесь, рассмотрите возможность перехода на новый интерфейс БД PDO. По крайней мере, используйте Mysqli ... расширение MySQL, которое вы используете сейчас, немного устарело. Это работает, а иногда даже требуется в старых приложениях / сайтах, но по возможности его следует избегать.

1 голос
/ 01 марта 2012

Используйте mysql_num_rows, чтобы получить количество строк.

$ result всегда будет иметь тип Resource, если ваш запрос не завершился неудачей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...