oci_bind_by_name不适用于LIKE子句

时间:2015-05-27 16:14:25

标签: bind sql-like oci

我的代码是这样的:

$s = ociparse($conn, "SELECT u.email, u.city FROM tickets t, users u WHERE t.userId = u.userId AND u.city LIKE '%:city%'");
$city = $_GET['city'];
oci_bind_by_name($s, ":city", $city);

显然,它无法取代":city"

我得到的警告:

  

警告:oci_bind_by_name():ORA-01036:第41行的C:\ xampp \ htdocs \ phpOracle \ tickets.php中的非法变量名称/编号

1 个答案:

答案 0 :(得分:2)

你需要像这样绑定它,你必须用它连接%符号,你不能用单引号包装你的绑定变量:

$s = ociparse($conn, "SELECT u.email, u.city FROM tickets t, users u WHERE t.userId = u.userId AND u.city LIKE '%' || :city || '%'");