我有一个页面,允许用户通过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.";
}
?>
关于为什么会发生这种情况的任何想法?
提前致谢!
答案 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));
}
您将能够调试问题(如果与查询相关)