對於此代碼:PHP PDO的execute()返回重複結果
$title = '0';
$subTitle = '1';
$tableName = 'someString';
$stmt = $dbh->prepare("SELECT `".$title."`, `".$subTitle."` FROM `".$tableName."_data` WHERE `id` = :key");
$stmt->bindValue(':key', '127');
$stmt->execute();
$result = $stmt->fetchAll();
print_r($result);
我得到$結果是這樣的:
Array
(
[0] => Array
(
[0] => 91651
[1] => 91651 - DESCRIPTION
[2] => 91651 - DESCRIPTION
)
)
當預期的結果應該是這樣的:
Array
(
[0] => Array
(
[0] => 91651
[1] => 91651 - DESCRIPTION
)
)
當我在mySQL中運行相同的查詢時,它會返回預期的結果。當它通過PHP PDO執行時,它會添加一個副本。
謝謝!
聽起來很愚蠢,但你完全肯定你沒有重複的鍵嗎?你有沒有嘗試過使用DISTINCT關鍵字來掩蓋這樣的違規行爲? – christopher 2013-03-01 16:15:21
是的,@ChrisCooney如何說。只有一種方法可以預示發生這種情況。在你的代碼中寫下類似...「用這個id選擇,記住它,如果其他行有相同的id,則繼續;」 – Stepo 2013-03-01 16:22:44
實際上,主要問題是我在數據庫結構上不好。在下面看到我自己的答案。 – ryantkelly 2013-03-01 16:27:08