【问题标题】: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);

【问题讨论】:

    标签: php mysql pdo placeholder bindvalue


    【解决方案1】:

    当你需要类似的东西时

    SELECT * FROM ... LIMIT :intValues
    

    避免将值包含在引号内,引发 SQL 语法错误

    【讨论】:

    • 这个答案是错误的。即使绑定字符串,也不需要引号。
    • pdo 会插入带引号的参数,限制不起作用
    • 为了绝对确定,我测试了它。不,它不会插入带引号的参数。这可能是版本问题吗?你过去可能是对的,尽管我不这么认为。更详细一点:您不需要在 PDO::bindValue() 中显式指定数据类型,它就可以很好地处理字符串和整数参数。
    猜你喜欢
    • 2015-04-01
    • 2016-10-12
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    • 2011-06-19
    • 2014-06-12
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多