Php PDO绑定值在';在';条款不包括';行不通

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

我试图使用“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)");
$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中,它是可选的。