为了账号安全,请及时绑定邮箱和手机立即绑定

SQL 中的 SQL 选择,无法按预期工作

SQL 中的 SQL 选择,无法按预期工作

PHP
月关宝盒 2021-10-15 10:09:23
我有一个来自表单输入3个变量,并有我这个选择在PHP如果我在输入要搜索$itemName,还给我确切的一个项目,因为它需要,如果我在搜索$typeName或者$itemPrice,还给我的整个列表项目,那不行,我试着做'%$typeName%','%$itemPrice'就像我做的那样$itemName,但无论如何它都会返回我所有的列表。问题是什么?$stid = oci_parse($conn, "select title, type, price                          from items                           where title like '%$itemName%'                              or type like '$typeName'                              or price like '$itemPrice'");
查看完整描述

2 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

与 LIKE 绑定的通用解决方案是:


<?php

$c = oci_connect("hr", "welcome", "localhost/XE");

$s = oci_parse($c,

    "select city, state_province from locations where city like :bv");

$city = 'South%';

oci_bind_by_name($s, ":bv", $city);

oci_execute($s);

oci_fetch_all($s, $res);

var_dump($res);

?>

您必须使用绑定来避免将变量值连接到 SQL 字符串中的 SQL 注入安全问题。它还有助于提高性能和可扩展性。




查看完整回答
反对 回复 2021-10-15
?
萧十郎

TA贡献1815条经验 获得超13个赞

尝试使用单引号

$stid = oci_parse($conn, 'Select title, type, price from items 
                          where title like '%$itemName%' 
                             or type like '$typeName' 
                             or price like '$itemPrice'');


查看完整回答
反对 回复 2021-10-15
  • 2 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信