在 PDO::bindValue() 中使用显式数据类型有啥意义?
Posted
技术标签:
【中文标题】在 PDO::bindValue() 中使用显式数据类型有啥意义?【英文标题】:What's the point of using explicit data types in PDO::bindValue()?在 PDO::bindValue() 中使用显式数据类型有什么意义? 【发布时间】:2012-11-15 15:35:52 【问题描述】:在PDO::bindValue()
中使用显式数据类型有什么意义?
例如,在以下任一形式中,SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 'a'
$pdos->bindValue(':Value_For_An_Int_Col', 'a');//default arg for the third and opt par is PDO::PARAM_INT
$pdos->bindValue(':Value_For_An_Int_Col', 'a', PDO::PARAM_INT);
【问题讨论】:
【参考方案1】:当你需要类似的东西时
SELECT * FROM ... LIMIT :intValues
避免将值包含在引号内,引发 SQL 语法错误
【讨论】:
这个答案是错误的。即使绑定字符串,也不需要引号。 pdo 会插入带引号的参数,限制不起作用 为了绝对确定,我测试了它。不,它不会插入带引号的参数。这可能是版本问题吗?你过去可能是对的,尽管我不这么认为。更详细一点:您不需要在 PDO::bindValue() 中显式指定数据类型,它就可以很好地处理字符串和整数参数。以上是关于在 PDO::bindValue() 中使用显式数据类型有啥意义?的主要内容,如果未能解决你的问题,请参考以下文章
使用显式等待在 Python 中使用 Selenium 弹出“接受 Cookie”