簡體   English   中英

PDO不從MySQL查詢返回結果

[英]PDO not returning results from mysql query

我對使用mysqli樣式的php查詢感到滿意,但嘗試使用更多的PDO。 我想我大部分都了解如何使用它,但是時不時地出現一些使我感到不適的東西。

所以我正在對mysql數據庫進行基本的SELECT查詢,但無法從查詢中獲取任何結果

PHP

try {
    $dbhandle = new PDO("mysql:dbname = {$dbname}; host = {$dbhost}; port = {$dbport}", $dbuser, $dbpass);
} catch (PDOException $e)
{
    echo "Error when creating Database Handle. Error: " .$e;
}

$sql = $dbhandle->prepare("SELECT projectName FROM `__projects`");
$sql->execute();

$projectList = $sql->fetch(PDO::FETCH_BOTH);

$size = sizeof($projectList);
echo $size;

我不明白為什么返回的數組為空。 我犯錯了嗎? 我知道用戶/密碼還可以,因為使用mysqli方法時可以使用相同的查詢返回結果。

我究竟做錯了什么?

嘗試調整您的連接語句。 我不確定命令是否會影響它,但是從文檔中看,它應該類似於:

mysql:host=localhost;port=3307;dbname=testdb

http://php.net/manual/en/ref.pdo-mysql.connection.php

謝謝,

安德魯

當您要執行查詢時,請先通過使其不等於或等於false來確保其將運行。 這樣,您可以調試腳本。 嘗試單獨准備查詢,而不是立即執行查詢。

下面的示例選擇'id'為1或3的行。

<?php
// Connection data (server_address, database, name, poassword)
$hostdb = 'localhost';
$namedb = 'tests';
$userdb = 'username';
$passdb = 'password';

try {
// Connect and create the PDO object
  $conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);
  $conn->exec("SET CHARACTER SET utf8");      // Sets encoding UTF-8

  // Define and perform the SQL SELECT query
  $sql = "SELECT * FROM `sites` WHERE `id` IN(1, 3)";
  $result = $conn->query($sql);

  // If the SQL query is succesfully performed ($result not false)
  if($result !== false) {
   $cols = $result->columnCount();           // Number of returned columns

 echo 'Number of returned columns: '. $cols. '<br />';

// Parse the result set
foreach($result as $row) {
  echo $row['id']. ' - '. $row['name']. ' - '. $row['category']. ' - '. $row['link']. '<br />';
}
}

$conn = null;        // Disconnect
}
catch(PDOException $e) {
echo $e->getMessage();
}
?>

暫無
暫無

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

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