sql - 通知: Undefined index in array result of native query doctrine

标签 sql doctrine-orm symfony dbal

我在 Doctrine 中获取了 native 查询的数组结果。查询是

    $conn = $em->getConnection();
    $sql = 'SELECT * FROM Stock_drink d WHERE id=?';
    $stmt = $conn->prepare($sql);
    $stmt->bindValue(1,$idstockdrink);
    $stmt->execute();
    $stockdrink = $stmt->fetchAll();

$stockdrink 内容为

"{"stockdrink":[{"id":"39","name":"limon","stockamount":"14","price":"2.20","Drink_id":"5","Bar_id":"12"}]}"

现在我想用这些句子获取 $stockdrink 数组的一些值,但总是收到通知 undefined index 。我正在查看文档,但没有看到解决方案。

    $iddrink = $stockdrink["name"];
    $name = $stockdrink["name"];
    $price = $stockdrink["price"];

提前致谢!!!!

最佳答案

因为 fetchAll() 方法“将所有结果提取到数组中”,所以在您的特定情况下,您必须这样修改代码:

$conn = $em->getConnection();
$sql = 'SELECT * FROM Stock_drink d WHERE id=?';
$stmt = $conn->prepare($sql);
$stmt->bindValue(1,$idstockdrink);
$stmt->execute();

$stockdrinks = $stmt->fetchAll();

$stockdrink = $stockdrinks[0];

$iddrink = $stockdrink["name"];
$name = $stockdrink["name"];
$price = $stockdrink["price"];

更多相关信息请点击 http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/data-retrieval-and-manipulation.html#fetchall

关于sql - 通知: Undefined index in array result of native query doctrine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42055864/

相关文章:

SQL 如何获取 XML 数据列的值并在 where 子句中使用它

mysql - 当第二个表有 ON 匹配但没有 WHERE 匹配时如何编写 JOIN

php - 更新或插入方法中的 Doctrine 2 DBAL 表达式

forms - Symfony 表单 CollectionType 字段的顺序

php - Symfony + Doctrine Oracle DateTime 格式问题

php - Symfony 项目设计模式

mysql - SQL - 将 select 语句中具有不同列数的两个查询合并为一个

c# - 在 SQL Server 中保存浮点值

javascript - 如何在集合字段集设置属性(id)(原则 2,zend 框架 2)

php - Linux 服务器上 symfony 中的无效请求错误