【问题标题】:Pull data from MySQL into JSONArray (with PDO!)将数据从 MySQL 拉入 JSONArray(使用 PDO!)
【发布时间】:2014-03-24 18:22:52
【问题描述】:

我在网上读到一些东西,很多人说建议从旧的 mysql(和 mysqli)扩展切换到 PDO。

我是这个 PDO 的新手,我从中学到了一些东西。 对于我的问题,我尝试搜索 stackoverflow、Google 等,但没有帮助。

mysqli 的原始脚本:

$data = mysqli_query($con, "SELECT x1, x2, x3, x4 FROM Table1 WHERE x1 = $variable1");
$row = mysqli_fetch_row($data);
$result_data = array(
  'data1' => $row[0],
  'data2' => $row[1]
 );

echo json_encode($result_data);

此代码输出如下内容:

{"data1", 1, "data2", 2}

我试图用这个 PDO 代码来改变它:

 $STH = $DBH->prepare("SELECT x1, x2, x3, x4 FROM Table1 WHERE x1 = ?");
 $STH->bindParam(1, $variable1);
 $STH->execute();
 $row = $STH->fetchAll();

 $result_data = array( 
    'data1' => $row[0],
    'data2' => $row[1],
 ); 

  echo json_encode($result_data);

这让我想起了一些很奇怪的事情

{"data1", 1, 2, 1, "data2", 1, "data2"}, data1 null, data2 null

它应该像原来的 mysqli 脚本一样返回...

我尝试了多种获取模式,如 assoc、num、column,我在互联网上找到的,但结果非常相似,我总是得到这个错误:

注意:未定义的偏移量:1 in

可能是什么问题,如何解决?

【问题讨论】:

    标签: php mysql json pdo


    【解决方案1】:
     $STH = $DBH->prepare("SELECT x1 data1, x2 data2 FROM Table1 WHERE x1 = ?");
     $STH->execute([$variable1]);
     echo json_encode($STH->fetchAll(PDO::FETCH_ASSOC));
    

    【讨论】:

      猜你喜欢
      • 2014-04-17
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      • 2018-06-12
      • 2018-08-01
      • 2013-11-14
      • 1970-01-01
      相关资源
      最近更新 更多