Php PDO::PARAM_STR和PDO::PARAM_INT未给出错误
这应该会产生错误,因为我没有为Php PDO::PARAM_STR和PDO::PARAM_INT未给出错误,php,oop,Php,Oop,这应该会产生错误,因为我没有为:vary参数使用字符串。但这很好,在表test中插入一行。有人能解释一下为什么没有错误吗?我在stackoverflow上发现了相同的问题,但我仍然感到困惑,有人能解释得更好吗?这不会因为PHP的类型转换而给你带来任何错误。换句话说:当您尝试将整数1234用作字符串时,PHP会将其以静默方式转换为字符串1234 请阅读PHP手册中有关的详细信息。“不给出错误”-您正在检查它们吗?--@Fred ii-它在表中插入一行,因此工作正常。列的类型是什么?如果是varch
:vary
参数使用字符串。但这很好,在表test
中插入一行。有人能解释一下为什么没有错误吗?我在stackoverflow上发现了相同的问题,但我仍然感到困惑,有人能解释得更好吗?这不会因为PHP的类型转换而给你带来任何错误。换句话说:当您尝试将整数1234
用作字符串时,PHP会将其以静默方式转换为字符串1234
请阅读PHP手册中有关的详细信息。“不给出错误”-您正在检查它们吗?--@Fred ii-它在表中插入一行,因此工作正常。列的类型是什么?如果是varchar,则不会抛出错误,因为
$vary
不包含字符串。如果您的列是一个int
,那么情况就不同了。@Fred ii-我将列类型更改为int,仍然可以正常工作。我认为它们没有使用PDO::PARAM_int
$sql = $pdo->prepare("INSERT INTO test(name,city)VALUES(:vary,'china')");
$sql->bindParam('vary',$vary, PDO::PARAM_STR);
$vary=1234;
$sql->execute();