PDO :: PARAM_STR和PDO :: PARAM_INT没有给出错误

时间:2016-09-16 12:31:20

标签: php oop

$sql = $pdo->prepare("INSERT INTO test(name,city)VALUES(:vary,'china')");
$sql->bindParam('vary',$vary, PDO::PARAM_STR);
$vary=1234;
$sql->execute();

这应该给出错误,因为我没有使用字符串,因为:vary参数。但这很好,并在表test中插入一行。有人可以解释为什么没有错误,我在stackoverflow上发现同样的问题PHP PDO::bindParam() data types.. how does it work?但是我仍然感到困惑,有人可以更好地解释..

1 个答案:

答案 0 :(得分:1)

由于PHP的类型杂耍,这不会给你任何错误。换句话说:当您尝试将字符串1234用作字符串时,PHP会以静默方式将整数1234强制转换为字符串public function get_code() { $output = <<<EOD <div>SOME HTML</div> EOD; return $output; }

阅读PHP手册中有关type juggling的更多信息。