我正在从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如何失败?
答案 0 :(得分:0)
是的,大多数时候你应该这样做。
只有few extremely rare cases你必须将bфck分开绑定。虽然INT和DECIMAL字符串绑定都可以。
请注意,对于十进制类型,您也应该在mysqli中使用“s”。