【发布时间】:2012-10-29 02:59:47
【问题描述】:
我正在使用此语句来获取我的数据库中列中的元素
$result = $stmt->fetchAll(PDO::FETCH_COLUMN, 0);
但我在尝试运行时收到此错误。
调用未定义的方法mysqli_stmt::fetchAll();
我需要在我的 php 文件中添加一些内容以包含该方法吗?
更新 1:
class LoginAPI
{
private $db;
function __construct()
{
$this->db = new mysqli('xxx', 'xxx', 'xxx', 'xxx');
$this->db->autocommit(FALSE);
}
function __destruct()
{
$this->db->close();
}
function login()
{
if(isset($_POST["lang"]))
{
$stmt = $this->db->prepare("SELECT code FROM locations");
$stmt->execute();
$stmt->bind_result($code);
//while($stmt->fetch())
//{
// result[] = "code"=>$code;
// break;
//}
$codeArr = array();
$result = $stmt->fetch_all();//|PDO::FETCH_GROUP;
sendResponse(200, json_encode($result));
return true;
}
sendResponse(400, 'Invalid Request');
return false;
}
}
【问题讨论】:
-
看起来你混合了 PDO 和 mysqli。如果您发布连接方式,它将显示您正在创建一个 mysqli 连接对象,而不是 PDO 语句。 mysqli 结果集对象具有 fetch_all() 而不是函数 fetchAll()。 fetchAll() 是 PDOStatement 类提供的函数。看到这个:php.net/manual/en/mysqli-result.fetch-all.php
-
您使用的是
PDO还是mysqli?无论如何,您在这里将两者混合在一起。 -
这是我连接到数据库的方式 $this->db = new mysqli(...);