php mysql where 变量,php – 如何使用mysqli将变量传递给WHERE子句?

我目前有一个只有两个元素的小搜索表单:一个名为search的文本输入和一个名为param的“select”框.在该框中选择的选项应该用作参数,以选择将获取我的数据库中的哪个表列.

使用mysql_函数,可以这样做:

$param = $_POST['param' ];

$search = $_POST['search'];

$query = 'SELECT * FROM table WHERE $param LIKE "%$search%"';

但我无法使用MysqLi_语法.我正在尝试使用准备好的语句,但到目前为止我做的最好的是:

$param = $_POST['param' ];

$search = $_POST['search'];

if($param == 'first_name')

{

if($prep = $link->prepare('SELECT * FROM table

WHERE first_name

LIKE CONCAT("%",?,"%")'))

{

$prep->bind_param('s',$search);

$prep->execute();

$prep->bind_result($first_name,$last_name);

while($prep->fetch())

echo $first_name . ' ' . $last_name;

$prep->close();

}

else

echo 'Error while preparing statement.';

}

else if($param == 'last_name')

{

...

}

但是,只是使用一堆其他ifs似乎有很多重复和非生产性,特别是如果我有很多列要处理.

我尝试的第一件事是参数绑定 – … WHERE? LIKE …和$prep-> bind_param(‘ss’,$param,$search) – 但是它不起作用(我仍然不知道为什么).

有没有办法以更聪明的方式做到这一点?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值