PHP PDO::bindParam() 数据类型..它是如何工作的?
我想知道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错误或一个interger。但是在我的数据库中,我有:
22 Testarossa Ferrari 23 250 GTO Ferrari
这意味着如果我有第三个参数,它就不会改变。或者也许我错过了什么。有人可以多给我一点吗?或者只是有人可以告诉我在哪里可以找到有关它的信息。
问候
赛勒斯
这正是我的情况。我的想法哪里出错了?