Предупреждение: mysql_num_rows (): указанный аргумент недопустим

0

Привет, я получаю сообщение об ошибке ниже, я дважды проверил все и не знаю, почему его отображают. Предупреждение: mysql_num_rows(): предоставленный аргумент не является допустимым ресурсом результата MySQL в /home/namebob/public _html/site_reg/statlookup.php в строке 6

<?php
    include_once('common.php');
    $cid        =   $_REQUEST['cid'];
    $_elmID     =   $_REQUEST['elmID'];
    $scan = mysql_query("SELECT  `id`, `state` FROM `mast_state` WHERE `countryid` = $cid");
    if(mysql_num_rows($scan)>0)
    {
...
Показать ещё 4 комментария
Теги:

4 ответа

1
Лучший ответ
$scan = mysql_query("SELECT  `id`, `state` FROM `mast_state` WHERE `countryid` = $cid");
    $stock_num = '';
    if($scan )
    {
        while($row=mysql_fetch_object($scan))
        {
            if($row->state)
            $state  = $row->state;
        }   
    }       
1
$scan = mysql_query("SELECT  `id`, `state` FROM `mast_state` WHERE `countryid` = '".mysql_real_escape_string($cid)."'");

Но действительно, используйте PDO.

$stm = $db->prepare("SELECT  `id`, `state` FROM `mast_state` WHERE `countryid` = ?");
if( $stm && $stm->execute(array($cid)) ) {
  while( $data = $stm->fetch(PDO::FETCH_ASSOC) ) {

  }
}
  • 0
    он хотел узнать количество найденных строк, не так ли?
  • 0
    это не похоже на то, как он проверяет, является ли число строк больше 0. Это общий признак того, что он просто смотрит, чтобы узнать, вернул ли ему что-нибудь запрос. Он мог просто $ stm-> rowCount, чтобы получить количество строк.
1

Скорее всего, ваш запрос не работает. Попробуйте:

if($scan) {
  if(mysql_num_rows($scan) > 0) {
    //...
  }
} else {
   trigger_error(mysql_error()); 
};
  • 0
    это ошибка, которую я получаю У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '' в строке 1
  • 0
    тогда оператор SQL, который вы выполняете, недопустим, а также имеет возможность инъекции SQL. использовать PDO ;-)
Показать ещё 3 комментария
1

Стоит попробовать var_dump($scan), если вы получаете что-то вроде null/false, это означает, что запрос не выполняется. В этом случае попробуйте echo mysql_error() проверить любую ошибку sql (отсутствующая таблица и т.д.)

  • 0
    я получаю ложный ход для дампа, и для последней ошибки я получаю эту фатальную ошибку: вызов неопределенной функции mysql_last_error () в
  • 0
    Оу, мой плохой, он должен вместо этого mysql_error ()
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню