如何解决这个问题:“警告:mysql_num_rows()期望参数1是资源,在//”中给出布尔值?

时间:2011-03-25 04:33:57

标签: php mysql

  

可能重复:
  mysql_fetch_array() expects parameter 1 to be resource, boolean given in select

//错误在第13行

$questions =$_POST['question_text'];

$checkquestion=mysql_query("SELECT question_text FROM questions LIKE '$questions' ");

if(mysql_num_rows($checkquestion)) { //line 13
echo "Question exist.";
                   }
else{

mysql_query("INSERT INTO questions (question_text,field_name)
VALUES ('$_POST[question_text]','$first_word')");
echo "Question saved";
                   }

3 个答案:

答案 0 :(得分:2)

$checkquestion = mysql_query("SELECT question_text FROM questions LIKE '$questions' ");
if (!$checkquestion) {
    die(mysql_error());
}

下一步:修复您的SQL查询。

您必须始终检查查询是否成功。它有一百万种可能出错,如果你的应用程序只是继续前进,假设它成功了你a)会以你的方式得到无关的错误,b)将无法有意义地调试你自己的应用程序。

正如@alex指出的那样,你应该在最终版本中做一些比这更优雅的错误处理。

答案 1 :(得分:1)

如果出现错误,

mysql_query将返回false。您需要在致电mysql_num_rows之前检查一下。

在一个不相关的说明中,你真的不应该在不使用mysql_real_escape_string的情况下将post变量直接放入查询中,或者让你自己开放SQL注入。

答案 2 :(得分:0)

$questions = $_POST['question_text'];

$checkquestion = mysql_query("SELECT question_text FROM questions LIKE '". $questions ."' ");

if(mysql_num_rows($checkquestion)) { //line 13
  echo "Question exist.";
}
else{
  mysql_query("INSERT INTO questions (question_text, field_name) VALUES ('". $_POST[question_text] ."','". $first_word ."')");

echo "Question saved";
}