由于某种原因,我的查询无效,我将发布$ _POST的代码和输出。
我还将添加数据库结构的屏幕截图。
$ _ POST:
代码:
ini_set('display_errors',1);
error_reporting(E_ALL);
echo "<pre>";
var_dump($_POST);
echo "</pre>";
$mysqli = new mysqli("localhost", "lunar_casino", "******", "lunar_casino");
if(isset($_POST['submit'])){
$error = array();
if(empty($error)){
$bonus = $_POST['bonus'];
$deposit = $_POST['deposit'];
$offers = $_POST['offers'];
$link = $_POST['link'];
$name = $_POST['logo'];
$q = $mysqli->query("INSERT INTO `lunar_casino`.`casino` VALUES(NULL, '$bonus', '$deposit', '$offers', '$link', '$logo', '$name', NULL)");
if(!$q){
echo "<font color='red'><b>There has been an error with our database! Please contact the website administrator!</b></font><br /><br />";
} else {
echo "<font color='green'><b>You have successfully added the casino!</b></font><br /><br />";
}
} else {
echo "<font color='red'><b>There were ".count($error)." errors in your form:</b></font><br />";
foreach($error as $err){
echo "<b>".$err."</b><br />";
}
echo "<br />";
}
}
数据库结构:
如果您需要更多信息,请告诉我们!
顺便说一下,我在查询中知道错误的方式是因为我检查了是否(!$ q)并且如果查询无法完成则显示错误消息,并显示错误消息页面。
任何想法为何不起作用?此外,我从查询中遗漏了日期,因为我不知道如何将当前日期:时间添加到查询中。
如果有人可以帮助解决这两个问题,请告诉我们! :)
答案 0 :(得分:0)
我认为问题在于您将NULL
设置为日期列。请尝试使用NOW()
代替NULL
:
$q = $mysqli->query("INSERT INTO `lunar_casino`.`casino` VALUES(NULL, '$bonus', '$deposit', '$offers', '$link', '$logo', '$name', NOW())");
答案 1 :(得分:0)
这里的错误不太清楚。您可以尝试以下一些调试选项:
为字段命名
$q = $mysqli->query("INSERT INTO `lunar_casino`.`casino` VALUES(NULL, '$bonus', '$deposit', '$offers', '$link', '$logo', '$name', NULL)");
到
$q = $mysqli->query("INSERT INTO `lunar_casino`.`casino`(field1, field2...) VALUES(NULL, '$bonus', '$deposit', '$offers', '$link', '$logo', '$name', NULL)");
将查询保存到字符串并将其打印出来。 (戈登林诺夫)
echo "INSERT INTO `lunar_casino`.`casino` VALUES(NULL, '$bonus', '$deposit', '$offers', '$link', '$logo', '$name', NULL)"
在查询之前。这可以向您展示PHP为MySQL提供的功能。
检查错误
if ($mysqli->connect_errno) { //check connection error
printf("Connect failed: %s\n", $mysqli->connect_error); //check query error
exit();
}