2012-02-03 5 views
-1

Я запустил этот запрос, чтобы проверить, существует ли в cat_name база данных mysql ... но она показывает предупреждение.Mysql num rows issue

Предупреждение: mysql_num_rows() ожидает параметр 1, чтобы быть ресурсом, логический дан в C: \ XAMPP \ HTDOCS ......»

<?php 
include("db.php"); 

if(isset($_POST['cat_name'])) 
{ 
$cat_name = mysql_real_escape_string(htmlentities(trim($_POST['cat_name']))); 
$err = array(); 

$ch = mysql_query("SELECT cat_name FROM categories WHERE cat_name = '$cat_name' "); 
$num = mysql_num_rows($ch); 

if(empty($cat_name)) 
$err[] = "Category field empty"; 
    elseif(is_numeric($cat_name)) 
    $err[] = "Category name should be string, ex: category name"; 
     elseif($num > 0) 
     $err[] = "Category name already exits, please choose another name"; 
      else 
      { 
       if(strlen($cat_name) < 3) 
       $err[] = "Category name at least 3 or more  
characters";  
      } 

if(!empty($err)) 
{ 
    foreach($err as $er) 
    { 
     echo "<font color=red>$er.</font>"; 
    } 
} 
else 
{ 
    $sql_insert = mysql_query("INSERT INTO categoires VALUES('', 
'$cat_name')"); 

    if($sql_insert) 
    { 
     echo "Successfully inserted your category name";  
    } 
    else 
    { 
     echo "Something is wrong to add your cateogory name"; 
     mysql_error(); 
    } 

} 


} 
?> 

Любая идея

+0

Является ли $ cat_name установленным? – j08691

+1

Решение может быть связано с соответствующей вкладкой справа ... ----> –

+0

$ 5 говорит, что вы широко открыты для атак SQL-инъекций. Научитесь использовать PDO с подготовленными запросами. – Brad

ответ

1

Из документов:..

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

mysql_query() также потерпит неудачу и вернуть FALSE, если пользователь не иметь разрешение на доступ к таблице (ы), на который ссылается запрос.

Я думаю, что у вас есть ошибка в вашем запросе.

+0

Ну @IsisCode, теперь, пожалуйста, посмотрите мой полный код, что такое ошибка? – user1161867

+0

В вашем запросе правильны ли ваши имена таблиц? Кроме того, я вижу отдельную ошибку в вашем скрипте: $ sql_insert = mysql_query ("INSERT INTO categorires VALUES ('', '$ cat_name')"); – IsisCode

+0

Да, имена таблиц верны. О инструкции INSERT, 1-ые значения - значения Auto Increment, так что я использовал их пустым .. правильно? – user1161867

2

Ваш запрос терпит неудачу (и возвращение false) Проверьте mysql_error или журналы ошибок MySQL/PHP