我在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";
}
答案 0 :(得分:1)
在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提供了值,而原始代码则没有。
关于所使用的实际方法/实施的有效性是另一回事,这个答案直接解决了手头的问题。
答案 1 :(得分:0)
试试这个
error_reporting(E_ALL);
require_once "conn.php";
require_once "func.php";
echo countusers($conn, "id", "mods");