我有一个 PHP 函数,我正在从使用 mysql 扩展名转换为 mysqli 扩展名。
一切顺利,直到这里。我以前使用 mysql_result 来获取单条数据。mysqli中没有直接的等价物,所以我尝试了以下但仍然不起作用。
function getdbvalue($table,$value,$idfield,$id) {
$qrytext = "SELECT $value FROM $table WHERE $idfield LIKE '$id'";
$valueqry = mysqli_query($dbh,$qrytext);
if (FALSE === $valueqry) die("Select failed: ".mysqli_error);
$result = mysqli_fetch_row($valueqry);
$returnvalue = $result[0];
return $returnvalue;
}
我已经验证变量可以正常传递给函数,并且函数实际上正在被触发。如果我返回 $id 我会看到 ID 号。
我没有收到查询错误。
解决了:
我需要在函数中将数据库连接变量添加为全局变量:
工作代码:
function getdbvalue($table,$value,$idfield,$id) {
global $dbh; // This was missing!
$qrytext = "SELECT $value FROM $table WHERE $idfield LIKE '$id'";
$valueqry = mysqli_query($dbh,$qrytext);
if (FALSE === $valueqry) die("Select failed: ".mysqli_error);
$result = mysqli_fetch_row($valueqry);
$returnvalue = $result[0];
return $returnvalue;
}
感谢大家的帮助。:)