Php 无法查询插入数据库
我一直在努力找出我正在编写的一段代码中的错误,但运气不佳。这肯定是件愚蠢的事,我真的需要你的帮助 请参阅下面的代码:Php 无法查询插入数据库,php,mysql,insert-into,Php,Mysql,Insert Into,我一直在努力找出我正在编写的一段代码中的错误,但运气不佳。这肯定是件愚蠢的事,我真的需要你的帮助 请参阅下面的代码: require_once('inc\dbh.php'); include_once('inc\functions.php'); session_start(); if(!isset($_SESSION['user'])){ header("location:index.php"); } $error = false; if($_SERVER['REQUEST_METHOD'
require_once('inc\dbh.php');
include_once('inc\functions.php');
session_start();
if(!isset($_SESSION['user'])){
header("location:index.php");
}
$error = false;
if($_SERVER['REQUEST_METHOD'] == "POST") {
$title = sqlinjection($_POST['title']);
$details = sqlinjection($_POST['details']);
$date = strftime("%B %d, %Y"); //date
$time = strftime("%X"); //time
$owner = $_SESSION['user'];
$public = $_POST['public'];
// basic title validation
if (empty($title)) {
$error = true;
$titleerror = "<li>Please enter a board title.</li>";
} else if (strlen($title) < 5) {
$error = true;
$titleerror = "<li>Title must have atleat 5 characters.</li>";
}
// basic details validation
if (empty($details)) {
$error = true;
$detailserror = "<li>Please enter a board detail.</li>";
} else if (strlen($details) < 55) {
$error = true;
$detailserror = "<li>Details must have atleat 55 characters.</li>";
}
// basic public validation
if (empty($public)) {
$error = true;
$publicerror = "<li>Please choose your board's privacy.</li>";
}
// if there's no error, continue to add board
if( !$error ) {
$query = "INSERT INTO boards('board_title', 'board_details', 'board_date_posted', 'board_time_posted', 'board_public') VALUES ('$title','$details',$date','$time','$public')";
$res = mysql_query($query);
if ($res) {
$errMSG = "Successfully added.";
unset($title);
unset($details);
unset($public);
} else {
$errMSG = "Something went wrong, try again later...";
}
}
}
require_once('inc\dbh.php');
包括_once('inc\functions.php');
会话_start();
如果(!isset($\u会话['user'])){
标题(“location:index.php”);
}
$error=false;
如果($\u服务器['REQUEST\u METHOD']==“POST”){
$title=sqlinjection($_POST['title']);
$details=sqlinjection($_POST['details']);
$date=strftime(“%B%d,%Y”);//日期
$time=strftime(“%X”);//时间
$owner=$\会话['user'];
$public=$_POST['public'];
//基本标题验证
如果(空($title)){
$error=true;
$titleerror=“请输入董事会标题。 ”;
}else if(斯特伦($title)<5){
$error=true;
$titleerror=“标题必须至少包含5个字符。 ”;
}
//基本细节验证
如果(空($详细信息)){
$error=true;
$detailserror=“请输入电路板详细信息。 ”;
}其他如果(斯特伦($details)<55){
$error=true;
$detailserror=“详细信息必须至少包含55个字符。 ”;
}
//基本公共验证
if(空($public)){
$error=true;
$publicerror=“请选择您的董事会隐私。 ”;
}
//如果没有错误,继续添加线路板
如果(!$error){
$query=“插入董事会(“董事会标题”、“董事会详细信息”、“董事会发布日期”、“董事会发布时间”、“董事会发布时间”)值(“$title”、“$details”、$date”、“$time”、“$public”)”;
$res=mysql\u query($query);
如果($res){
$errMSG=“已成功添加。”;
未结算($所有权);
未结算(详情);
unset(公共);
}否则{
$errMSG=“出现问题,请稍后再试…”;
}
}
}
问题是:每当我执行insert into查询时,我总是得到“出错,请稍后再试…”“board_title”是一个字符串,而不是列名从
列
名称中换行而使用倒勾
您可以在添加或终止时看到错误(如果有)(mysql_error());在mysql_query()之后,停止使用PHP的mysql_API。一个准备好的语句是更好/更安全的方法,它可以避免这个问题。它还可以避免sql注入,因为看到您使用的是mysql\uAPI,而您的sqlinjection()
很可能对您没有多大帮助,即使它确实包含mysql\u real\u escape\u string()
。请参阅下面的问答