我一直在我的页面中执行一个查询--比如说,page.php --在其中运行一个简单的查询。
伪码:
$request_unavailble = mysqli_query($mysqli, "SELECT * FROM my_table WHERE availble='0'");当在page.php内部执行此操作时,我将所有可用的结果设置为0。但是,如果在单独包含的文件中运行此操作,则数据返回为空。实际上,当包含时,mysqli_num_rows返回0。
出什么问题了,这里?
编辑
以下函数被添加为包含(既作为函数,也作为单独的函数)
function compte_messagerie()
{
$requetes_messagerie = mysqli_query($mysqli, "SELECT * FROM ".DB_PREFIX."messagerie WHERE lu='0'");
if(mysqli_num_rows($requetes_messagerie) == 0)
{
echo '<a id="messagerie" href="messagerie">'.AUCUN_NOUVEAU."</a>";
}
else if(mysqli_num_rows($requetes_messagerie) == 1)
{
echo '<a id="messagerie" href="messagerie">';
echo '<span>'.mysqli_num_rows($requetes_messagerie)."</span> ";
echo MESSAGES_SINGULIER."</a>";
}
else
{
echo '<a id="messagerie" href="messagerie">';
echo '<span>'.mysqli_num_rows($requetes_messagerie)."</span> ";
echo MESSAGES_PLURIEL."</a>";
}
}发布于 2014-01-22 02:36:42
当将查询移植到函数时,$mysqli中的$mysqli连接对象超出了作用域,因此在函数中无效。启用display_errors后,我希望您看到以下错误:
注意:未定义变量$mysqli 警告: mysqli_query()期望参数1是资源,空给定
最干净的解决方案是将$mysqli作为参数传递到函数中,使其可用于函数的作用域
// Expect the MySQLi resource as a parameter...
function compte_messagerie($mysqli)
{
$requetes_messagerie = mysqli_query($mysqli, "SELECT * FROM ".DB_PREFIX."messagerie WHERE lu='0'");
if(mysqli_num_rows($requetes_messagerie) == 0)
{
echo '<a id="messagerie" href="messagerie">'.AUCUN_NOUVEAU."</a>";
}
// etc.....
}发布于 2014-01-22 02:12:11
尝尝这个。请检查可用表是否需要字符串值或整数。
$request_unavailble = mysqli_query("SELECT * FROM my_table WHERE availble= 0 ");
while($rows = mysqli_fetch_assoc($request_unavailble)){ // <- this will check if there some data fetch
// You put some code here
}https://stackoverflow.com/questions/21272796
复制相似问题