【发布时间】:2018-09-11 10:56:35
【问题描述】:
我有一个奇怪的问题,我认为很容易解决。
我正在简化上下文,但假设我有以下代码:
$schval = "Val";
$schbind = "%".$schval."%";
$sql = "SELECT Col1, Col2, Col3 FROM MyTable WHERE Col1 LIKE :schbind";
$stmt = $conn->prepare($sql);
$stmt->bindparam(':schbind',$schbind);
$stmt->execute();
$rows = $stmt->fetchAll();
这行得通。
但是,如果我想在查询中多次使用 :schbind,请更改 $sql 变量,如下所示:
$sql = "SELECT Col1, Col2, Col3 FROM MyTable WHERE (Col1 LIKE :schbind OR Col2 LIKE :schbind)";
查询失败,因为它没有返回任何行。
正常的 SQL 逻辑告诉我这应该可以工作,即如果发现搜索值与 Col1 或 Col2 匹配,则返回该行。
为什么这不起作用?
【问题讨论】:
标签: php sql-server pdo