【发布时间】:2014-02-09 12:29:04
【问题描述】:
正如PDOStatement::execute 文档所说,“所有值都被视为PDO::PARAM_STR。
所以我有以下问题
1)假设我有一个变量$_SESSION['id']=2 和一个查询
$sql='select * from articles where id=?';
$query=$con->prepare($sql);
$query->execute(array($_SESSION['id']));
当我执行语句时,它执行成功。 它表示它将变量作为整数传递。它会自动转换还是违反文档声明?
2)假设我有另一个查询
select * from articles where id=? and category=?
现在这里第一个参数是int,最后一个参数是string,所以当我绑定参数$query->bindValue(2, $_GET['category'],PDO::PARAM_STR);时,我是否需要指定PDO::PARAM_STR,或者我可以依赖默认实现,它被认为是string默认情况下,如文档所述。
3)我想在查询中指定$_GET['category'] 中的表名,但我得到以下格式的字符串(注意表名周围的引号),因此出现 SQL 错误。我该如何更正它?
select * from 'article'...........
【问题讨论】: