我有一个简单的脚本来检查用户上传了多少文件:

$sql = "SELECT * from $username where file IS NOT NULL";
$result = mysql_query($sql);
$count=mysql_num_rows($result);

如果表$username没有任何文件不为空的行,它将弹出:
“警告:mysql_num_rows():提供的参数不是中的有效mysql结果资源…”
我能做些什么来避免这个?是否有一种简单的方法来抑制显示此错误消息?或者一个简单的“if”语句,可以防止SQL查询首先发生?

最佳答案

你可以这样做:

<?php
 $sql = "SELECT * from $username where file IS NOT NULL";
 $result = mysql_query($sql);
 if($result)
 {
     $count=mysql_num_rows($result);
 }
 else
 {
     $count = 0;
  }

或者使用速记:
<?php
 $count = ($result) ? mysql_num_rows($result) : 0;

注:
就像你在其他评论中看到的,这只是你问题的一个答案,一次解决一个问题。在这里使用$username可能很棘手,特别是当它是动态的或用户生成的内容时。最好看看与数据库交互方式的一些长期改进,但这里是目前的解决方案;-)
附言。
如果你不想学习所有的新东西,也许一个框架,比如Codeigniter可以帮助你。使用它active record class很容易,而且它本身可以处理很多事情。

关于php - 如何抑制“不是有效的MySQL结果资源”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11107881/

10-10 06:48