【问题标题】:what is the correct syntax for insert into php mysql. W or W/O session variables插入 php mysql 的正确语法是什么。 W 或 W/O 会话变量
【发布时间】:2016-06-25 21:52:42
【问题描述】:

我已经尝试了很多单引号和 $session 变量的语法试验,现在我决定将会话变量放在常规变量中以减少语法复杂性。

$conn = mysql_connect($servername, $username, $password);
        // Check connection
        if (!$conn) {
            die("Connection failed: " . mysql_error());
        } 
        if (!mysql_select_db($dbname)) {
            die('Could not select database: ' . mysql_error());
        }


    $this_email = $_SESSION['email'];
    $this_password = $_SESSION['pw'];
    $this_number = $_SESSION['phone'];

    $sql = mysql_query("INSERT INTO user_accounts(Email, Password, Phone#) VALUES ('$this_email','$this_password','$this_number')");
    if (!$sql) {
      echo mysql_error();
    }

    mysql_close($conn);

这是我得到的错误:

您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解在第 1 行的 '' 附近使用的正确语法

【问题讨论】:

标签: php mysql session insert


【解决方案1】:

列名可能有basic Latin letters, digits 0-9, dollar, underscore。所有其他字符都需要使用反引号。

http://dev.mysql.com/doc/refman/5.7/en/identifiers.html

那就试试吧:

INSERT INTO user_accounts(Email, Password, `Phone#`)

您还应该更新您的驱动程序并使用准备好的语句。

【讨论】:

    【解决方案2】:

    因为Phone# 中有一个特殊字符(#),所以需要用反引号写出来!

    此外,我建议您使用 PDO 或 mysqli 库以及准备好的语句,因为 mysql 库已被弃用。

    【讨论】:

    • 这不是问题,因为它不是字母数字。 # 实际上意味着什么。
    猜你喜欢
    • 2011-04-28
    • 2015-01-05
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 2021-10-04
    相关资源
    最近更新 更多