我有三个文件conn.php
,func.php
并index.php
在conn.php
我有我的数据库中连接index.php
我已经包括了连接文件,而在func.php
我有一个函数,它的列数数
func.php
<?php
function countusers($connection, $column, $table)
{
$stmt = mysqli_prepare($connection, "
SELECT
COUNT($column)
FROM
$table");
if($stmt)
{
mysqli_stmt_bind_result($stmt, $num);
mysqli_execute($stmt);
mysqli_stmt_fetch($stmt);
mysqli_stmt_close($stmt);
}
return $num;
}
但是它似乎不起作用,我尝试在函数中添加连接文件,并且它起作用了。
这是我的索引文件
index.php
<?php
require_once "conn.php";
include "func.php";
echo countusers($conn, "id", "mods");
conn.php
<?php
$conn = mysqli_connect("localhost", "root", "", "test", 3306);
if(!$conn)
{
echo "An Error Occurred";
}
快速阅读php.net指出,bind_result必须在执行后发生...我还没有运行它,因此它仅是一个建议。
所以你可以尝试...
//... SNIP...
if($stmt)
{
mysqli_stmt_execute($stmt); // Changed this to mysqli_stmt_execute
mysqli_stmt_bind_result($stmt, $num);
mysqli_stmt_fetch($stmt);
mysqli_stmt_close($stmt);
}
else {
$num = 0;
}
return $num;
// ... SNIP ...
另外,如果$ stmt为false,则$ num的默认值是多少?您需要决定并设置。
更新:如果由于某种原因导致stmt失败,则添加了$ num的默认值。从那以后,我运行了这段代码,并且可以正常工作。
代码段中建议的更改确实为$ num提供了一个值,而原始代码却没有。
至于所使用的实际方法/实现的有效性是另一回事,这个答案直接解决了眼前的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句