【问题标题】:I don't have anything in my database?我的数据库里什么都没有?
【发布时间】:2016-01-05 16:55:23
【问题描述】:
$query = "INSERT INTO `users` (`id`, `name`, `lname`, `uname`, `email`, `pass`) VALUES (NULL, '$name', '$lname', '$uname', '$email1', '$pass1')" or die(mysqli_error($con));
mysqli_query($con, $query);

我写了这段代码...输入后我的基础中没有任何东西

【问题讨论】:

  • 那么问题是什么?
  • 很多事情都可能有问题,你有什么错误吗?这可能就像需要刷新你的客户端数据一样简单。假设 id 是一个主键,你应该使用 DEFAULT 而不是 NULL
  • 有什么错误吗? $con 是什么?我们缺少一些信息。
  • 没有错误我只是在输入uname,lname和所有其他并按下提交后数据库中没有任何内容
  • 您的 ID 字段是否在您的数据库中设置为 AUTO_INCREMENT?如果是这样,值部分中的 NULL 可能会导致错误。

标签: php mysqli insert


【解决方案1】:
$query = "INSERT INTO `users` (`id`, `name`, `lname`, `uname`, `email`, `pass`) VALUES (NULL, '$name', '$lname', '$uname', '$email1', '$pass1')" or die(mysqli_error($con));
mysqli_query($con, $query);

替换为:

$query = "INSERT INTO `users` (name, lname, uname, email, pass) VALUES ('$name', '$lname', '$uname', '$email1', '$pass1')" or die(mysqli_error($con));
mysqli_query($con, $query);

无需将列名放在引号中。

另外,如果您的 ID 是 auto_increment,则无需在插入查询中添加它。

【讨论】:

  • 您删除了字段周围的反引号,但没有删除表名?
  • 不需要在表名周围去掉。这是 sql 普遍接受的 :)
  • 谢谢这是问题:)
  • @ChrisG 仅当您的表名或列名是 MySQL 保留字时才需要反引号
  • @ChrisG 很高兴我能帮上忙。
【解决方案2】:

or die(mysqli_error($con)); 作为设置字符串文字的一部分毫无意义。因此,请尝试像这样重新编码,以便从正确的位置查找错误。

$query = "INSERT INTO `users` 
                 (`id`, `name`, `lname`, `uname`, `email`, `pass`) 
          VALUES (NULL, '$name', '$lname', '$uname', '$email1', '$pass1')" ;
$result = mysqli_query($con, $query);

if ( $result === FALSE ) {
    echo mysqli_error($con);
    exit;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    相关资源
    最近更新 更多