Mysqli到PDO绑定参数

时间:2017-04-03 12:47:14

标签: php mysqli pdo bind

我正在从mysqli语法切换到PDO并有一些疑问:

在我使用它之前(绑定int,string,decimal值的例子):

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

使用PDO我应该使用:(这里param decimal已经不存在了,更不用说我必须写多行来进行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和decimal如何失败?

1 个答案:

答案 0 :(得分:0)

是的,大多数时候你应该这样做。

只有few extremely rare cases你必须将bфck分开绑定。虽然INT和DECIMAL字符串绑定都可以。

请注意,对于十进制类型,您也应该在mysqli中使用“s”。