将表单数据发布到数据库时发生PHP错误
我试图使一个广告后的形式添加数据到数据库。页面不断重新加载并要求填写所有详细信息。我似乎找不到错误,我在谷歌和youtube上做了很多搜索,都没有结果。请帮忙将表单数据发布到数据库时发生PHP错误,php,html,mysql,database,Php,Html,Mysql,Database,我试图使一个广告后的形式添加数据到数据库。页面不断重新加载并要求填写所有详细信息。我似乎找不到错误,我在谷歌和youtube上做了很多搜索,都没有结果。请帮忙 <?php session_start(); include'db.php'; $name = $_POST['name']; $email = $_POST['email']; $phoneNumber = $_POST['mobile-num']; $photos = $_POST
<?php
session_start();
include'db.php';
$name = $_POST['name'];
$email = $_POST['email'];
$phoneNumber = $_POST['mobile-num'];
$photos = $_POST['fileselect'];
$town = $_POST['location'];
$category = $_POST['category'];
$adTitle = $_POST['title'];
$adDescription = $_POST['description'];
if(isset($_SESSION['email']))
{
if($email != "" && $name != "" && $phoneNumber != "" && $photos != "" && $town != "" && $category != "" && $adTitle !="" && $adDescription != "")
{
$name = stripslashes($name);
$email = stripslashes($email);
$phoneNumber = stripslashes($phoneNumber);
$photos = stripslashes($photos);
$town = stripslashes($town);
$adTitle = stripslashes($adTitle);
$category = stripslashes($category);
$adDescription = stripslashes($adDescription);
$name = mysqli_real_escape_string($connection,$name);
$email = mysqli_real_escape_string($connection,$email);
$phoneNumber = mysqli_real_escape_string($connection,$phoneNumber);
$photos = mysqli_real_escape_string($connection,$photos);
$town = mysqli_real_escape_string($connection,$town);
$adTitle = mysqli_real_escape_string($connection,$adTitle);
$category = mysqli_real_escape_string($connection,$category);
$adDescription = mysqli_real_escape_string($connection,$adDescription);
$imagePath = "images/".basename($_FILES['fileselect']['MAX_FILE_SIZE']);
$photo = $_FILES['fileselect']['MAX_FILE_SIZE'];
$date = date("j F Y");
if(filter_var($email,FILTER_VALIDATE_EMAIL))
{
mysqli_query($connection, "SELECT email,ad-title,ad-category,ad-description,Photos,Name,Mobile-Num,Town,date from ads");
$insertQuery = mysqli_query($connection, "INSERT INTO ads(email,ad-title,ad-category,ad-description,Photos,Name,Mobile-Num,Town,date)
VALUES('$email','$adTitle','$category','$adDescription','$photo','$name','$phoneNumber','$town','$date')");
header("Location: /profile.php");
}
else
$_SESSION['errorMessage'] = "Please check email pattern";
header("Location: /post-ad.php");
}
else
$_SESSION['errorMessage'] = "Please input all the required details";
header("Location: /post-ad.php");
}
else
header("Location: /login.php");
?>
这就是PHP代码。
因为我不太擅长Stackoverflow,所以我在格式化我想在这里发布的html表单代码时遇到了问题。我将附加一个图像 不确定为什么要运行SELECT,因为您似乎对它不做任何操作,也没有参数。但是插入应该是
$insertQuery = mysqli_query($connection, "INSERT INTO ads(email,`ad-title`,`ad-category`,`ad-description`,`Photos`,`Name`,`Mobile-Num`,`Town`,`date`)
VALUES('$email','$adTitle','$category','$adDescription','$photo','$name','$phoneNumber','$town','$date')");
如果列名中有连字符,则应将其括在后面的记号中,我建议(如果不是太晚的话)删除连字符并使用下划线
您还应该在运行任何SQL时检查错误,并对其进行某种处理。感谢大家的帮助。很抱歉让你承受了这么大的压力。我检查了我的数据库结构,发现一个列的类型错误,导致无法执行sql insert查询。很抱歉……使用事先准备好的语句,您的代码将更加整洁和简短。要找出问题所在,请删除这些重定向!所以错误是验证,对吗?^这是。只需注释掉所有
header()
-函数,并查找任何错误。要显示SQL错误,可以添加`or die(mysqli_error());`在您的mysqli\u查询()的末尾,
。可能有助于。。。如果您有PHP MyAdmin打开SQL并尝试插入语句,看看它是否有效。您可以用它来解决查询中的问题。@e4c5我是PHP新手。请为我指出正确的方向,在那里我可以获得最佳实践的资源。ThanksI删除了Select QUERY,因为它没有用,从代码和数据库本身中的数据库列名中删除了连字符。仍然不起作用。我只是得到一张空白的白纸。