簡體   English   中英

Mysqli到PDO的綁定參數

[英]Mysqli to PDO binding parameters

我正在從mysqli語法切換到PDO,並且有一些疑問:

在我使用它之前(綁定整數,字符串,十進制值的示例):

$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, id, value) VALUES (?, ?, ?)");
$stmt->bind_param("sid", $firstname, $id, $value);
$stmt->execute();

使用PDO時,我應該使用以下命令:(這里參數十進制已經不存在,更不用說我必須寫多行以進行binging)

$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, id, value) VALUES (?, ?, ?)");
$stmt->bindParam(1, $firstname, PDO::PARAM_STR);
$stmt->bindParam(2, $id, PDO::PARAM_INT);
$stmt->bindParam(3, $value, PDO::PARAM_STR);//no decimal type!
$stmt->execute();

我應該只是“忘記”類型並執行此操作嗎?

$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, id, value) VALUES (?, ?, ?)");
$stmt->execute([$firstname, $id, $value]);

在這種情況下,int和十進制如何失敗?

是的,大多數時候您應該這樣做。

極少數情況下 ,您將不得不摔倒以分開綁定。 對於INT和DECIMAL而言,字符串綁定都可以。

注意,對於十進制類型,您也應該在mysqli中使用“ s”。

暫無
暫無

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

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