Php PDO绑定值在';在';条款不包括';行不通
我试图使用“where in”子句获取顶级信息,但如果使用bindvalue或bindparam,则不会得到任何结果 这是我的查询,它没有给出任何结果Php PDO绑定值在';在';条款不包括';行不通,php,sql,pdo,where,bindvalue,Php,Sql,Pdo,Where,Bindvalue,我试图使用“where in”子句获取顶级信息,但如果使用bindvalue或bindparam,则不会得到任何结果 这是我的查询,它没有给出任何结果 $user2 = $db->prepare("Select top 100 memb_guid,memb___id,mail_addr,Gender,Country from MEMB_INFO where memb___id in (Select memb___id from MEMB_STAT where IP = :ip)"); $u
$user2 = $db->prepare("Select top 100 memb_guid,memb___id,mail_addr,Gender,Country from MEMB_INFO where memb___id in (Select memb___id from MEMB_STAT where IP = :ip)");
$user2->bindValue(':ip','127.0.0.1',PDO::PARAM_STR);
$user2->execute();
如果我使用不带任何bindValue或param的直接搜索,我会得到结果
$user2 = $db->prepare("Select top 100 memb_guid,memb___id,mail_addr,Gender,Country from MEMB_INFO where memb___id in (Select memb___id from MEMB_STAT where IP = '127.0.0.1')");
$user2->execute();
有人能帮我在这个搜索“where in”子句中使用bindvalue或param吗
@PhilCross这是我使用var_dump时得到的结果:
object(PDOStatement)#4 (1) { ["queryString"]=> string(142) "Select top 100 memb_guid,memb___id,mail_addr,Gender,Country from MEMB_INFO where memb___id in (Select memb___id from MEMB_STAT where IP = :ip)"
Ps:我正在使用MSSQL服务器绑定值的键应该不带“:” 并且绑定值应该在变量中 $ip='127.0.0.1'
$user2->bindValue('ip',$ip,PDO::PARAM_STR) 是否需要
PDO::PARAM_STR
?启用MySQL查询日志并查看在SQL查询中使用单引号运行的内容where IP=':IP')
PDO准备的语句不需要在值周围加引号@MandoMadalin您能否在第一次查询的第一行之后直接对$user2执行var\u dump()
?可能有一个PDO错误,由于您的错误处理,该错误不会被抛出。此外,将PDO的错误处理设置为抛出异常,并将$db->prepare
代码包装在try/catch
块周围。@David,prepared语句不应在参数周围加引号。不正确;事实上,参数键上的:
前缀在早期版本的PDO中是必须的,现在在最新版本的PDO中,它是可选的。