我已经通过 PHPMyAdmin 在我的 MySQL 数据库上创建了一个非常简单的 View 。 View 工作正常,目前只有:
SELECT * FROM MyTable
在 PHPMyAdmin 中我可以看到这个查询选择的所有记录。
在我的 PHP 代码中,我使用了以下代码:
$stmt = $this->conn->prepare("SELECT * FROM MyTable");
$stmt->execute()
.......
这非常有效,我可以读取所有记录,但是如果我写:
$stmt = $this->conn->prepare("SELECT * FROM MyView");
$stmt->execute()
.......
我获得了 0 条记录。
我只是重复:
- View 运行良好,现在非常简单,只需一个 SELECT * FROM MyTable;
- 当我从表中选择时,我的 PHP 代码可以正常工作,但当我从 View 中选择时似乎不起作用。
怎么了?
提前谢谢你。
编辑:异常(exception)情况如下:
类型: mysqli_sql_exception
代码:1615
消息:准备好的语句需要重新准备
最佳答案
我们怀疑在准备或执行 SQL 语句时发生错误。
我们怀疑您的代码没有检查错误情况。 (在发布的代码片段中没有迹象表明进行了此类检查。)
我们建议您首先在代码中修复该问题。
至于发生了什么错误,没有足够的信息来诊断它。您说 PHP 代码运行的 完全 相同的 SQL 文本在另一个环境中成功执行。这排除了标识符( View 名称)myview
与 MyView
中区分大小写的问题。我们猜测您正在连接同一个数据库,使用来自两个环境的同一个 MySQL 用户(用户和主机),这排除了权限上的差异。
关于PHP Mysqli SELECT from Views 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34835142/