dmo*_*ain 19 mysql database mysqli pdo
在这个查询中
select wrd from tablename WHERE wrd LIKE '$partial%'
Run Code Online (Sandbox Code Playgroud)
我正在尝试将变量'$partial%'
与PDO 绑定.不知道这%
最终是如何工作的.
可不可能是
select wrd from tablename WHERE wrd LIKE ':partial%'
Run Code Online (Sandbox Code Playgroud)
在哪里:partial
受到约束$partial="somet"
还是会的?
select wrd from tablename WHERE wrd LIKE ':partial'
Run Code Online (Sandbox Code Playgroud)
在哪里:partial
受到约束$partial="somet%"
或者它会完全不同?
bob*_*nce 28
你也可以说:
SELECT wrd FROM tablename WHERE wrd LIKE CONCAT(:partial, '%')
Run Code Online (Sandbox Code Playgroud)
在MySQL端进行字符串连接,而不是在这种情况下有任何特殊原因.
如果wrd
您正在寻找的部分本身包含百分比或下划线字符(因为它们对LIKE运算符具有特殊含义)或反斜杠(MySQL在LIKE运算符中用作另一层转义 - 不正确,事情会变得有点棘手,根据ANSI SQL标准).
希望这对你没有影响,但如果你确实需要这样做,那么这是一个混乱的解决方案:
$stmt= $db->prepare("SELECT wrd FROM tablename WHERE wrd LIKE :term ESCAPE '+'");
$escaped= str_replace(array('+', '%', '_'), array('++', '+%', '+_'), $var);
$stmt->bindParam(':term', $escaped);
Run Code Online (Sandbox Code Playgroud)
kar*_*m79 16
$var = "partial%";
$stmt = $dbh->prepare("select wrd from tablename WHERE wrd LIKE :partial");
$stmt->bindParam(":partial", $var);
$stmt->execute(); // or $stmt->execute(array(':partial' => $var)); without
// first calling bindParam()
$rs = $stmt->fetchAll();
Run Code Online (Sandbox Code Playgroud)
使用问号参数:
$stmt = $dbh->prepare('select wrd from tablename WHERE wrd LIKE ?');
$stmt->execute(array('partial%'));
$rs = $stmt->fetchAll();
Run Code Online (Sandbox Code Playgroud)
http://www.php.net/manual/en/pdo.prepare.php
归档时间: |
|
查看次数: |
18139 次 |
最近记录: |