oci_bind_by_name doesn't work with LIKE clause

不想你离开。 提交于 2019-12-02 04:27:19

问题


My code is something like this:

$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);

Apparently, it can't replace the ":city"

The warning I get:

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number in C:\xampp\htdocs\phpOracle\tickets.php on line 41


回答1:


You need to bind it like this, you have to concatenate the % signs with it and you cannot have your bound variable wrapped in single quotes:

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


来源:https://stackoverflow.com/questions/30487892/oci-bind-by-name-doesnt-work-with-like-clause

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!