MySQL Query不通过PHP提交,而是作为原始查询提交

时间:2014-07-24 19:23:09

标签: php jquery html mysql forms

我有一个页面,允许用户通过PHP提交表单来创建条目并将其插入数据库。

我过去曾经使用过该页面,但它运行得很好,但现在由于某种原因它已经停止工作了。基本上,我提交表单,没有错误消息,但我的条目没有出现在数据库中。

这是我的PHP:

<?php // add_entry.php

session_start();

include_once 'creds.php';
$con=mysqli_connect("$db_hostname","$db_username","$db_password","$db_database");

if (isset($_POST['group'])){

$lab = $_SESSION['labname'];
$author = $_SESSION['username'];
$name = $_POST['entryName'];
$group = $_POST['group'];
$protocol = $_POST['protocol'];
$permission = $_POST['permission'];
$array = $_POST['protocolValues'];
// $filearray = $_POST['fileArray']; Don't forget to add '$filearray', to your query after ARRAY.
$project = $_POST['project'];



    $query = "INSERT INTO data (protocol, name, lab, author, uniquearray, usergroup, project, permissionflag) VALUES ('$protocol', '$name', '$lab', '$author', '$array', '$group', 'project', '$permission')";

    mysqli_query($con, $query);

    mysqli_close($con);

}else{
echo "FAILURE. GROUP WAS NOT SET.";
}

?>

关于为什么会发生这种情况的任何想法?

提前致谢!

2 个答案:

答案 0 :(得分:2)

除了我所接受的接受答案之外,您'project'

中的这个VALUES()

缺少$符号 - 因此,它不作为变量传递,而是作为简单字符串传递。

所以将其更改为'$project'

否则,在DB中输入的值将为project,而不是表单中的预期POST值。

您还没有检查错误,这在项目的开发阶段至关重要。

将错误报告添加到文件顶部

error_reporting(E_ALL);
ini_set('display_errors', 1);

将发出代码中发现的任何错误信号。

答案 1 :(得分:1)

尝试添加

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
$con=mysqli_connect(...);

之后

并替换此

mysqli_query($con, $query);

用这个

if (!mysqli_query($con, $query)) {
    printf("Errormessage: %s\n", mysqli_error($con));
}

您将能够调试问题(如果与查询相关)