【问题标题】:mysql like query not working on browsermysql之类的查询在浏览器上不起作用
【发布时间】:2017-12-19 19:00:42
【问题描述】:

我有以下查询,当给定确切的列值时它工作正常,但当使用 like 运算符时它无法获取任何行。如何在以下查询中传递 % 符号

$RegistrationMark = $_GET['RegistrationMark'];

$qr= mysqli_query($connection, "SELECT * FROM `EarlsdonMSIN_anpr_vega` where `RegistrationMark` like '" %.$RegistrationMark. %"'");

【问题讨论】:

  • 注意:mysqli 的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的mysql_query 接口混淆。在您对程序风格投入过多之前,值得转换一下。示例:$db = new mysqli(…)$db->prepare("…") 过程接口是 PHP 4 时代引入的 mysqli API 的产物,不应在新代码中使用。
  • 警告:使用mysqli 时,您应该使用parameterized queriesbind_param 将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了严重的SQL injection bug切勿$_POST$_GET任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。
  • % 是您的查询字符串的一部分,因此它需要在 " 内。

标签: php mysql


【解决方案1】:

您的 % 分数在错误的位置...

$qr= mysqli_query($connection, "SELECT * FROM `EarlsdonMSIN_anpr_vega` where `RegistrationMark` like '%" .$RegistrationMark. "%'");

您应该小心使用连接字符串和 SQL 注入技巧。

【讨论】:

    猜你喜欢
    • 2014-04-11
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多