$db = new PDO();
$sth = $db->prepare('sql');
有木有一个类似getSql的方法可以获取执行的SQL的
然后
$db = new PDO();
$sth = $db->prepare('select * from `table` where p1 = :p1 limit :limit');
$sth->bindValue(':p1',$var_p1,PDO::PARAM_INT);
$sth->bindValue(':limit',$var_limit,PDO::PARAM_INT);
这样正确
$sth->execute(array(intval($var_p1),intval($var_limit));
为什么报错?execute中,转成int还是不行?非要我指定一个绑定类型?
不是类型的问题,仔细看看文档:http://cn2.php.net/manual/zh/pdostatement.execute.php
你这种execute调用方法,prepare时,要使用问号占位符;既然用了“冒号参数名”的方式,execute时传递的数组也要使用冒号参数名作为数组下标。
另外,你是想获取将占位符替换成实际参数值之后的SQL语句吗?PDO是办不到的,因为prepared statement本质上是一种临时的存储过程
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。