我有一个运行
PHP 5.6的站点.该站点的数据库最近从MySQL 5.1升级到MariaDB 10.0(MySQL 5.5兼容),现在我的站点上的查询将无法工作(并且在连接到MySQL 5.1数据库时它正常工作.
对于这个演示,我有一个名为“content”的数据库表,字段为“id”(整数),“page_title”(var_char).在该表中有两行 – 一行ID为1,page_title为“Test 1”,第二行ID为2,page_title设置为“Test 2”.
然后我使用phpMyAdmin中的以下查询创建了该表的视图:
select `content`.`id` AS `id`,`content`.`page_title` AS `page_title` from `content`
我可以在phpMyAdmin的视图中看到内容表中的视图和两行.
在我的PHP页面上,我有一个面向对象的样式查询.该代码是:
try {
require_once 'Connections/dbconn.php';
$sql = "SELECT id, page_title FROM v_content WHERE id = 1 LIMIT 1";
$stmt = $db->stmt_init();
if (!$stmt->prepare($sql)) {
$error = $stmt->error;
} else {
$stmt->bind_result($id, $page_title);
$stmt->execute();
$stmt->store_result();
$stmt->fetch();
}
} catch (Exception $e) {
$error = $e->getMessage();
}?>
此查询返回以下内容:尝试在没有与语句关联的结果集时读取行
如果我将表从VIEW“v_content”更改为表“content”,我会返回一个结果.另外,如果我使用相同的查询(查询VIEW v_content),并连接到MySQL 5.1数据库,我会返回结果.我知道查询本身没有任何问题,因为我已经将查询复制并粘贴到phpMyAdmin并返回了结果,并且在MySQL 5.1数据库上使用了完全相同的代码并返回了结果.我检查了错误日志,没有显示错误.
任何人都知道是什么原因导致我从视图中返回0结果?