编辑:取决于!请参阅下面的常识评论。
如果该值为整数,则应将其视为整数。使用尽可能多的数据类型应用此项。
如果您没有将 PDO::ATTR_EMULATE_PREPARES 的属性设置为 false,则会收到一个令人讨厌的错误。
实例:
$stmt = $dbh->prepare("SELECT * FROM table123 WHERE raw_field = :field LIMIT 1 OFFSET :offset;");
$stmt->bindParam(':field', $field);
$stmt->bindParam(':offset', $offset);
if ($map_stmt->execute())
{
$data = stmt->fetch(PDO::FETCH_ASSOC);
}
else
{
echo 'Error :';
echo '<pre>';
print_r($map_stmt->errorInfo());
print_r($map_stmt->debugDumpParams());
echo '</pre>';
}
将返回一个令人讨厌的错误,其中包含:
错误代码:1064 SQL 语法中存在错误;检查与您的MySQL服务器版本相对应的手册,了解在第1行的“0”附近使用正确的语法
查询:从表中选择 * 123 其中 raw_field = 'home' LIMIT 1 OFFSET '0'
无用的你把它当作一个整数,它会删除字符串(例如:'')。
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
简而言之:
你选择!严格的数据与否..