php pdo:prepare()负片变为正片

php pdo:prepare()负片变为正片,php,numbers,prepared-statement,negative-number,Php,Numbers,Prepared Statement,Negative Number,我使用一个准备好的语句将表单中的值插入到Db中,其中一些值是负数 # html <input type="radio" name="opinion" value='-2' /> <input type="radio" name="opinion" value='-1' /> <input type="radio" name="opinion" value='0' /> <input type="radio" name="opinion" value='1

我使用一个准备好的语句将表单中的值插入到Db中,其中一些值是负数

# html
<input type="radio" name="opinion" value='-2' />
<input type="radio" name="opinion" value='-1' />
<input type="radio" name="opinion" value='0' />
<input type="radio" name="opinion" value='1' />
<input type="radio" name="opinion" value='2' />

# prepare
prepare("UPDATE $db.$dbt SET $question = :value WHERE `key` = :key;");

如果您正在使用PDO:-

$sth->bindParam(':value', $opinion, PDO::PARAM_INT);

bindParam的默认数据类型是
PDO::PARAM_STR

@Pekka:SMALLINT(4)。我认为这可能是一个fieldtype问题,但我认为在CLI中手动运行SQL时也会遇到同样的问题(因此不会成功插入负数)。有没有更动态地执行此操作的方法?(并非所有的值都是整数,
prepare
处于循环中)。将其添加到问题中。谢谢如果我在绑定中添加了
PDO::PARAM_STR
,那么这不是很难吗?仔细阅读,要求设置为PDO::PARAM_INT,而默认数据类型是PDO::PARAM_STR
$sth->bindParam(':value', $opinion, PDO::PARAM_INT);