【问题标题】:Selecting data where value is equal to a variable MySQL选择值等于变量 MySQL 的数据
【发布时间】:2018-02-11 21:47:47
【问题描述】:

我正在尝试创建一个系统来选择 username2 等于变量的所有行,但不明白为什么这不起作用。我对 MySQL 还很陌生。

这不起作用:

$sql = "SELECT username2, petbreed, petcost, pettype FROM pets WHERE username2 
= " + $first_name;

这个也不行:

$sql = "SELECT username2, petbreed, petcost, pettype FROM pets WHERE 
username2 = '" + $first_name + "'";

但这确实:

$sql = "SELECT username2, petbreed, petcost, pettype FROM pets WHERE 
username2 = 'JohnDoe'";

感谢您抽出宝贵时间阅读本文。

【问题讨论】:

    标签: php mysql database mysqli


    【解决方案1】:

    你可以这样写: $sql = "SELECT username2, petbreed, petcost, pettype FROM pets WHERE username2 = '$first_name'".

    在整个表达式周围使用双引号,在变量周围使用单引号。

    + 不是 PHP 中的连接符号。点. 是。

    【讨论】:

      【解决方案2】:

      在 PHP 中,字符串连接通过“.”进行。 (点)运算符 - 您不能使用“+”(加号)符号来连接字符串。

      如果您替换了第二个示例中的加号,那么您就可以开始了

      $sql = "SELECT username2, petbreed, petcost, pettype FROM pets WHERE username2 = '".$first_name."'";
      

      甚至

      $sql = "SELECT username2, petbreed, petcost, pettype FROM pets WHERE username2 = '$first_name'";
      

      但是,强烈建议先清理 $first_name(以避免 SQL 注入)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-02
        • 1970-01-01
        • 2015-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-20
        相关资源
        最近更新 更多