首页 > 解决方案 > PHP MySQL 准备好的语句不从视图中获取

问题描述

我在本地 PC 上完成了网站的开发,并且运行良好。现在,在我将 PHP 脚本和文件转移到我的 Web 主机目录后,我开始面临问题,尤其是准备好的语句。

简而言之,当我对表执行准备好的语句时,它会返回值,但是当对视图执行它时,它不会。

$con = mysqli_connect($a["server"], $a["username"], $a["password"], $a["database"]);

$sql = "SELECT ID FROM table WHERE ALIAS = ?";
$stmt = mysqli_prepare($con,$sql);
mysqli_stmt_bind_param($stmt, "s", $_GET["alias"]);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $id);
mysqli_stmt_fetch($stmt);
mysqli_stmt_close($stmt);

echo "ID: $id";

$id 有价值,但是当我从视图中选择时

$sql = "SELECT ID FROM view WHERE ALIAS = ?";
$stmt = mysqli_prepare($con,$sql);
mysqli_stmt_bind_param($stmt, "s", $_GET["alias"]);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $id);
mysqli_stmt_fetch($stmt);
mysqli_stmt_close($stmt);

echo "ID: $id";

$id 是空的,如果我使用 mysqli_query() 从视图中选择,那么它将获得一个值。你能帮忙解决这个问题吗?

注意:一开始我设置

mysqli_report(MYSQLI_REPORT_OFF);

谢谢

标签: phpsqlmysqliprepared-statement

解决方案


推荐阅读