【问题标题】:PHP mysqli_query error in syntaxPHP mysqli_query 语法错误
【发布时间】:2016-01-19 13:10:50
【问题描述】:

我的代码有问题。我认为这很好,但控制台说它不是:

警告:mysqli_query() 期望参数 1 为 mysqli,在 /home/u772833821/public_html/DB_Functions.php66 行

中给出了 null

代码如下:

$result = mysqli_query($con, "INSERT INTO users SET (email, username, encrypted_password, salt, created_at) VALUES('$email', '$uname', '$encrypted_password', '$salt', NOW())");

【问题讨论】:

  • 你真的不应该在密码哈希上使用你自己的盐,你真的应该使用 PHP 的built-in functions 来处理密码安全。如果您使用的 PHP 版本低于 5.5,则可以使用 password_hash() compatibility pack
  • set 使其成为无效查询,将问题与连接失败分开(您的查询也可能仍然无效,具体取决于变量包含的内容,请查看准备好的语句)。这段代码是不是在函数里,有没有包含你的db连接文件,这里还有很多猜测...
  • @chris85 嘿,是的。我认为这个问题倾向于混合 MySQL API,或者它们的连接代码已关闭。

标签: php mysqli


【解决方案1】:

您的查询不正确。尝试如下:

$result = mysqli_query($con, "INSERT INTO users (email, username, encrypted_password, salt, created_at) VALUES('$email', '$uname', '$encrypted_password', '$salt', NOW())");

尝试检查$con是否有效:

$host = "your_host"; // replace these settings for your own
$username = "your_username";
$password = "your_password_if_any";
$db = "your_db_name";
$con = mysqli_connect($host, $username, $password, $db);

if (!$con) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

参考资料:

【讨论】:

  • 没有任何改变。同样的警告
  • 你会在你的问题中添加你的数据库连接吗?
  • @TheLietuvis 从不在这里显示任何数据库信息,甚至不包括主机(除非 localhost 用于演示)或用户名
  • @TheLietuvis :请检查我的回答中提到的连接。
【解决方案2】:

请按步骤操作,有不止一处更正:

1.从 INSERT 查询中删除 SET

$result = mysqli_query($con, "INSERT INTO users (email, username, encrypted_password, salt, created_at) VALUES('$email', '$uname', '$encrypted_password', '$salt', NOW())");

2.检查连接错误

$con = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);

if (!$con) {
  echo "Error: Unable to connect to MySQL." . PHP_EOL;
  echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
  echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
  exit;
}

可能是连接问题。让我知道第 2 点的输出是什么。

【讨论】:

    猜你喜欢
    • 2018-05-04
    • 2014-12-03
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多