doushi1912 2019-04-03 23:48
浏览 67
已采纳

如何在PHP中使用oracle中的LIKE

I am trying to use a simple SQL statment with the LIKE operator. This SQL statement works on SQL developer but not when I try it on PHP.

SELECT * FROM hotels WHERE lower(name) LIKE '%luxury%';

However when I do the same thing in php I get this error:

Warning: oci_bind_by_name(): ORA-01036: illegal variable name/number

PHP Code:

$sql = "SELECT * FROM hotels WHERE lower(name) LIKE '%:term%'";
$stid = oci_parse($conn, $sql);
$term = "luxury";
oci_bind_by_name($stid, ":term", $term);
oci_execute($stid);
  • 写回答

2条回答 默认 最新

  • duanqing2209 2019-04-03 23:51
    关注

    You would need to concatenate the string parts with the parameter, like :

    $sql = "SELECT * FROM hotels WHERE lower(name) = '%' || :term || '%'";
    

    NB: do you really want to search for a string surrounded by litteral '%'s? Given the title of the question, you might be looking for the LIKE operator instead:

    $sql = "SELECT * FROM hotels WHERE lower(name) LIKE '%' || :term || '%'";
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考