我有一个简单的脚本来检查用户上传了多少文件:
$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/