【问题标题】:MySql select quotation marksMySql 选择引号
【发布时间】:2013-07-11 09:29:38
【问题描述】:

我有闲置代码:

$query = "SELECT `email` FROM `user` WHERE `email` = " . mysql_real_escape_string($this->email) . "";

我不知道我应该使用什么样的引号,因为它不起作用。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    应使用单引号:

    $query = "SELECT `email` FROM `user` WHERE `email` = '" . mysql_real_escape_string($this->email) . "'";
    

    【讨论】:

      【解决方案2】:

      没有,您应该使用占位符,然后允许数据库库/服务器处理数据的转义和引用(如How to prevent SQL injection in PHP? 中所述)。

      【讨论】:

        【解决方案3】:
        $query = "SELECT `email` FROM `user` WHERE `email` = " . mysql_real_escape_string($this->email) . "";
        

        应该是

        $query = "SELECT `email` FROM `user` WHERE `email` = '" . mysql_real_escape_string($this->email) . "'";
        

        【讨论】:

          【解决方案4】:

          试试single quotes('')

          $query = "SELECT `email` FROM `user` WHERE `email` = '" . mysql_real_escape_string($this->email) . "'";
          

          【讨论】:

            【解决方案5】:

            有很多方法可以构建查询。您选择了一种合法的原始方法,但您使用的扩展被标记为 deprecated。我建议调查mysqli 和 PDO。

            为您解答。

            $query = "SELECT `email` FROM `user` "
                   . "WHERE `email` = '" . mysql_real_escape_string($this->email) . "'";
            

            【讨论】:

              猜你喜欢
              • 2014-06-28
              • 1970-01-01
              • 2011-10-16
              • 2015-05-20
              • 1970-01-01
              • 2022-11-29
              • 1970-01-01
              • 2016-12-10
              • 1970-01-01
              相关资源
              最近更新 更多