我想知道bindParam()
(或bindValue()
)中的数据类型声明用于...
我的意思是,我认为如果我定义一个整数参数 ( PDO::PARAM_INT
),则该参数必须转换为整数,例如
$delete->bindParam(1, $kill, PDO::PARAM_INT);
// should work like
$delete->bindParam(1, (int)$kill);
或者如果参数不是声明的类型,至少会抛出一个错误。但这种情况并非如此。
谷歌搜索,我在 php.net 存档中发现:
大家好,
我目前正在研究 PDO。正好在 bindParam() 函数上。第三个参数 data_type 似乎是在这里强制值的类型?但是当我尝试时:
$sql = "INSERT INTO produit (idproduit, nom, marque) VALUES (NULL, :nom, :marque)"; $stmt = $dbh->prepare($sql); $nom = 'Testarossa'; $marque = 'Ferrari' ; $stmt->BindValue(':marque',$marque) ; $stmt->BindParam(':nom',$nom,PDO::PARAM_INT) ; $stmt->execute(); $nom = '250 GTO' ; $stmt->execute(); ?>
我期待在我的数据库中出现 PHP 错误或整数。但在我的数据库中,我有:
22 Testarossa 法拉利 23 250 GTO 法拉利
这意味着如果我有第三个参数它没有改变。或者也许我错过了什么。有人可以告诉我更多吗?或者有人可以告诉我在哪里可以找到有关它的信息。
问候,
赛勒斯
这正是我的情况。我的想法哪里错了?