PHP MySQLi没有插入到表中

Posted

技术标签:

【中文标题】PHP MySQLi没有插入到表中【英文标题】:PHP MySQLi not inserting into tables 【发布时间】:2013-02-23 00:58:47 【问题描述】:

我查看了其他一些类似的问题,但似乎仍然无法正常工作。 FWIW,我没有收到任何具体的错误消息。

<?php

// Create connection
$con=mysqli_connect("localhost","username","password");
mysqli_select_db($con, "database");
//let's start our session, so we have access to stored data
session_start();

$class = mysqli_real_escape_string($_SESSION['exclass']);
$fullname = mysqli_real_escape_string($_SESSION['fullname']);
$june = mysqli_real_escape_string($_SESSION['June']);
$july = mysqli_real_escape_string($_SESSION['July']);
$email = mysqli_real_escape_string($_POST['email']);
$phone = mysqli_real_escape_string($_POST['phone']);

//let's create the query
$insert_query = "INSERT INTO Responses (class,fullname,June,July,email,phone) VALUES ('$class','$fullname',$june,$july,'$email','$phone',)";

//let's run the query
$result = mysqli_query($con,$insert_query);

if($result)
    echo "Your response has been recorded. Thank you!";

else

    printf("Insert failed: %s\n", mysqli_error());

?>

【问题讨论】:

当您通过命令行或 phpmyadmin 之类的工具直接在 MySQL 中运行查询时会发生什么? '$phone' 后面有一个逗号,这会中断查询。不知道为什么您没有看到错误消息 - 这应该报告语法错误。 您没有用单引号将$june,$july 括起来有什么原因吗? 为什么不检查是否可以连接? 【参考方案1】:

MySQL 不支持尾随逗号。

因此,替换:

,'$phone',)

,'$phone')

另外,添加一个回退条件以查看错误输出缓冲区:

mysqli_query($con, $insert_query) or die(mysqli_error($con));

【讨论】:

感谢所有指出尾随逗号的人,我确实错过了。【参考方案2】:
"INSERT INTO Responses (class,fullname,June,July,email,phone) VALUES    ('$class','$fullname',$june,$july,'$email','$phone',<--- LOOK AT THIS COMMA)

这很可能解释了插入数据库失败的原因。从 SQL 字符串中删除逗号,它将正确解析。

【讨论】:

以上是关于PHP MySQLi没有插入到表中的主要内容,如果未能解决你的问题,请参考以下文章

PHP mysqli插入不起作用,但没有给出任何错误

Ajax 使用 POST 方法发送数据,但 PHP 函数不会将它们插入到表中

从php向表中插入行时如何修复我的MySQLi数据库

我想将表单中的数据插入到表中,然后从另一个表中选择另一个数据并使用 PHP 插入到第三个表中

如何将 PHP 数据从数据库发送回 JQuery 并插入到表中

mysqli查询成功但给出错误号0 [关闭]