php - 我如何在 php 中使用 fetchAll?

标签 php sql fetchall

我正在使用这个语句来获取我的数据库中列中的元素

$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;
}
}

最佳答案

您正在使用 mysqli,并且您得到的是语句而不是结果。如果你有一个 mysqli_result,你可以使用 fetch_all() 方法。

但是,由于这是一个 mysqli_stmt,您首先需要执行,然后在结果集上使用 fetch_all()。看下面的例子

 $stmt = $this->db->prepare("SELECT code FROM locations");
 $stmt->execute();


//grab a result set
$resultSet = $stmt->get_result();

//pull all results as an associative array
$result = $resultSet->fetch_all();

注意:使用 fetch_all,您无需将结果绑定(bind)为原始代码。

关于php - 我如何在 php 中使用 fetchAll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13297094/

相关文章:

php - 单击时,切换图像以及 MySQL 数据库中的值

php - mysql选择坐标错误

python - 使用 Jupyter Notebook 将 SQL 转换为 Pandas Dataframe

php - 在没有内存限制错误的情况下处理来自巨大 mysql 查询的 fetchAll

PHP:使用 fetchall() 显示表数据

mysql - python查询mysql添加结果到下拉选择?

php - 我可以在 xdebug 分析器上手动说在特定位置开始分析吗?

php - 如何调用magento主安装子文件夹中的多个网站商店?

sql - 将 SQL 用于 rails 参数/值

mysql - 使用 SELECT 插入 .... 如果 SELECT 返回 0 行怎么办