Php 如果包含,则查询为空
我一直在我的页面中执行一个查询,比如page.php,在这里我运行一个简单的查询 伪代码: 当在page.php中执行此操作时,我将获得所有结果,其中available设置为0。但是,如果我在一个单独的包含文件中运行此命令,数据将返回空。事实上,mysqli_num_行在包含时返回0 这里怎么了 编辑 以下函数被添加为include,既作为函数,也作为单独的函数Php 如果包含,则查询为空,php,mysql,Php,Mysql,我一直在我的页面中执行一个查询,比如page.php,在这里我运行一个简单的查询 伪代码: 当在page.php中执行此操作时,我将获得所有结果,其中available设置为0。但是,如果我在一个单独的包含文件中运行此命令,数据将返回空。事实上,mysqli_num_行在包含时返回0 这里怎么了 编辑 以下函数被添加为include,既作为函数,也作为单独的函数 function compte_messagerie() { $requetes_messagerie = mysqli_qu
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>";
}
}
试试这个。请检查可用的表是require string value还是integer
$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
}
将查询移植到函数中时,$MySQLi中的MySQLi连接对象超出范围,因此在函数中无效。启用“显示错误”后,我希望您看到以下错误: 注意:未定义变量$mysqli 警告:mysqli_查询要求参数1为资源,给定为null 最干净的解决方案是将$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.....
}
发布更多代码。如果它在include中的行为不同,可能是变量作用域绊倒了您。你有错误报告吗?错误报告全部;ini设置“显示错误”,1;是,错误报告始终处于打开状态。我还根据请求添加了代码。正如我所怀疑的-$mysqli不在该function的作用域内。您的查询失败,但未检查其中的错误。您没有看到类似于mysqli_query期望参数1是resource的东西吗,给定null?我应该将其放在包含全局$db变量(包括$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.....
}