首頁 >後端開發 >php教程 >PDOStatement::bindValue中第三個參數到底扮演了什麼角色?

PDOStatement::bindValue中第三個參數到底扮演了什麼角色?

WBOY
WBOY原創
2016-09-19 08:51:551099瀏覽

有這樣一個表:
PDOStatement::bindValue中第三個參數到底扮演了什麼角色?

username欄位是varchar(20)。
查詢是這樣的:

<code>$conn = new PDO(...);
$sql = "select * from user where username=:username";
$username=123;
$stmt=$conn->prepare($sql);
$stmt->bindValue(":username", $username, PDO::PARAM_STR);
$stmt->execute();
print_r($stmt->fetchAll());</code>

我知道這裡的$username其實寫錯了,應該是'123',不過因為下邊又把參數指定成PDO::PARAM_STR了所以查詢到了2620這條。
但是當我突發奇想把PDO::PARAM_STR 改成PDO::PARAM_INT的時候,結果卻是2620、2621兩條都被查詢出來了。
這個結果我十分不理解,那PDO::PARAM_XXX到底做了什麼?求明白的幫我解釋一下,謝了。
好吧,敲完這個問題之後我直接在資料庫裡試了下select * from user where username=123,結果也是兩條都出來,那就不是PDO的問題了,但是還是不明白為什麼123不加引號會有這樣的結果。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn