php - FetchAll(PDO::FETCH_ASSOC) 没有返回任何内容

标签 php mysql pdo

<分区>

我用这个函数调用我的数据库

function get_prescriptionWith_4($ID){
    $sql = "SELECT prescriptions FROM tblprescriptions WHERE `ID`='$ID'";
    $query = $this->dbh->prepare($sql);
    $query->execute();
    $row = $query->fetchAll(PDO::FETCH_ASSOC));
    return @$row;
}

我的数据库表是这样的..

ID   |       prescription
1    |    Med  (gen) 20 -- #20/1X per day --morning--for  30 days/,
1    |    test (test) 23 -- #343/1X per day --morning and noon-- 120 days23/,   
          samp (rere) 44 -- #34/1X per day --morning-- 7 days44/, 
1    |    asd (asd) 22 -- #222/3X per day --morning noon and evening--30 days/,   
          qw (wq) 44 -- #222/3X per day --morning noon and evening--60 days/, 
          1233 (123) 21 -- #123213/1X per day --morning---  60 days/,

我想要实现的是加载所有具有相同 ID 的处方,并且由于行处方中有多个数据,所以当我尝试使用 时,我使用 explode 来分隔数据Fetch(PDO::FETCH_ASSOC) 我只返回第一个处方我认为使用 fetchAll 可能更好地从我的数据库中获取所有数据..

$pres_array3=$patient->get_prescriptionWith_4($ID);
$new_array3=explode(',',$pres_array3,-1);

但是当我使用 echo $new_array3 来检查是否在 fetchAll 上时没有任何返回

最佳答案

1) 你准备好的陈述是错误的/误用的

$sql = "SELECT prescriptions FROM tblprescriptions WHERE `ID` = :id";
$query = $this->dbh->prepare($sql);
$query->execute([':id' => $ID]);

2) $query->fetchAll(PDO::FETCH_ASSOC) 返回数组,所以 $row['prescriptions'] 不存在,它会抛出警告未定义索引处方。正确的版本是

if($row = $query->fetch(PDO::FETCH_ASSOC)){

关于php - FetchAll(PDO::FETCH_ASSOC) 没有返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44150509/

相关文章:

PHP自动刷新页面而不丢失用户输入

mysql - 比较 2 个表并找到不重复的条目

php - 使用 PDO 将时间插入 MySQL 数据库

php - html 在不工作后用 php 提交按钮

php - .htaccess css 和图像文件重定向

mysql - 如何在 SQL 中生成 "column3"= "column1"- "column2"

php - 刷新页面时表单数据重新发布到数据库

PHP PDO mysql 按结果 ID 获取行

mysql - 如何在数据表中每次只显示十个结果?

php - Laravel 5 包开发