我想使用pdo类从MSSQL DB获取一些数据并使用%%子句
之类的地方我想找到用户名:mozzey0410
如果我只搜索mozzey04或mozzey041,我可以找到它。但如果我尝试使用全名:mozzey0410没有给出记录。 如何解决这个问题?我想使用相同的查询搜索完整或部分名称。
$user2 = $db->prepare("Select top 100 memb_guid,memb___id,mail_addr,Gender,Country from MEMB_INFO where memb___id like ? and mail_addr like ?");
$user2->bindValue(1, $userid . '%');
$user2->bindValue(2, $mail . '%');
$user2->execute();
$user = $user2->fetchall();
答案 0 :(得分:0)
试
$user2 = $db->prepare("Select top 100 memb_guid,memb___id,mail_addr,Gender,Country from MEMB_INFO where memb___id like concat('%',?,'%') and mail_addr like ?");
并绑定没有'%'的值
答案 1 :(得分:0)
我认为您可以将wildcard
添加到变量
$user2->bindValue(1, '%' . $userid . '%', PDO::PARAM_STR);
$user2->bindValue(2, '%' . $mail . '%', PDO::PARAM_STR);
$user2 = $dbh->prepare('Select top 100 memb_guid,memb___id,mail_addr,Gender,Country from MEMB_INFO where memb___id like :userid and mail_addr like :mail');
$userid = "%".$userid ."%";
$mail= "%".$mail."%";
$user2->bindParam(':userid', $userid, PDO::PARAM_STR);
$user2->bindParam(':mail', $mail, PDO::PARAM_STR);
否则,您可以使用名称而不是占位符来执行不同的操作
{{1}}
答案 2 :(得分:0)
好的,发现了问题:
我的列搜索(memb___id)的长度为10,我更改为16并立即工作! 所以关于列长度。