我遇到了從我的PDO語句返回值的問題。從PDO查詢返回值的問題
這是我的代碼:
//Execute test
$this->checkConnect();
$stmt = $this->dbh->prepare("SELECT p_id FROM People WHERE lastName = :param1 AND firstName = :param2");
$stmt->bindParam(':param1', $this->lName);
$stmt->bindParam(':param2', $this->fName);
$stmt->execute();
$count = $stmt->rowCount();
//Determine value of test
if($count == FALSE)
{
return FALSE;
}
else
{
$dummyvar = $stmt->fetch();
$this->p_id = implode($dummyvar);
}
當我正在經歷我的數據庫中的記錄,我注意到某個值從我不得不投入是關閉的。當我執行查詢時,它應該從表People
中獲取p_id
的值。夠簡單。但是,發生的情況是該號碼被附加了兩次。例如,說p_id
等於1. this->p_id
將等於11.或者是p_id
等於2,輸出將是22.我在MySQL中執行了這個查詢,並且該值是正確的。我不確定我的PHP代碼中發生了什麼。也許與內爆有關?我不確定。
任何洞察力將不勝感激。
此外:我還應該說明p_id
是唯一的,因此只能返回一個值。
順便說一句,你不能依賴於'PDOStatement對象:: rowCount時() '在SELECT語句之後:並非所有司機都會回覆有意義的迴應。相反,調用'fetch()'並將結果與'false'比較。請參閱[rowCount文檔](http://www.php.net/manual/en/pdostatement.rowcount.php)。 – slashingweapon
我讀過。在這種情況下,它似乎可以達到預期的目的。在某些情況下,我已將其更改爲您提及的相同方法。 – Mlagma