簡體   English   中英

將數據從MySQL拉入JSONArray(使用PDO!)

[英]Pull data from MySQL into JSONArray (with PDO!)

我在Internet上讀過一些書,很多人說,建議從舊的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,這些都是在Internet上找到的,但是結果非常相似,並且我總是會收到此錯誤:

注意:未定義偏移:1 in

可能是什么問題,如何解決?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM