嗨请忽略我试图在我的数据库中插入数据的所有评论,但我的查询或我的脚本有问题请帮助或添加一些建议,因为当我点击提交按钮时它不提交到我的数据库< /强>
<?php
include("connect.php");
session_start();
if( !isset($_SESSION['id']))
{
header('Location: ../index.php');
}
//foreach($_POST as $key => $val)
//{
// echo '<p> '.$key.'='.$val.' </p>';
//}
$name = $_SESSION['name'];
$queue = $_POST['queue'];
//$TarosID = $_POST['TarosID'];
//$Status = $_POST['Status'];
//$Reason = $_POST['Reason'];
$date = date("d/m/y");
$time = time("h:i:s");
$query = "INSERT INTO sms_traffic_db.table_data name, date, time, queue, TarosID, Status, Reason VALUES '$name, $date, $time, $queue'";
$result = mysql_query($query);
if($result)
{
echo "Data Inserted successfully";
}
else
{
echo "Error";
}
mysql_close();
?>
答案 0 :(得分:3)
您需要在列表列表周围添加括号,并在您的值列表周围再次使用括号。
如果您尝试echo mysql_error()
,那么您会看到这一点。
...还
答案 1 :(得分:1)
请检查您的值字段,它只有5个值。
剩余字段应为空。
如果你必须检查实际的错误检查
$result = mysql_query($query) or mysql_error();
答案 2 :(得分:0)
1.纠正你的插入语法。检查mysql文档。
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
{VALUES | VALUE} ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
2.不要使用mysql_query,不推荐使用它们。使用mysqli_query。
3.您的代码对于stackoverflow中的相关主题的sql injection.search是可以理解的。
答案 3 :(得分:0)
您的代码在这里:
$query = "INSERT INTO sms_traffic_db.table_data name, date, time, queue, TarosID, Status, Reason VALUES '$name, $date, $time, $queue'";
列出要插入的七列,但只列出四个值。 MySQL可能会抛出错误,因为这些必须匹配。
答案 4 :(得分:0)
我认为你必须打开与数据库mysql_connect
的连接。每次进行查询时都会尝试捕获查找PDO
类,它更容易使用。
编辑
抱歉,没有看到顶部的包含 试试这个:
$query = "INSERT INTO sms_traffic_db.table_data (name, date, time, queue, TarosID, Status, Reason) VALUES (".$name.", ".$date.",". $time.", ."$queue.")";
编辑2:
所以这就是我要做的事情:
<?php
// in your file connect.php
$databaseName = "sms_traffic_db";
$dbUser = "root";
$dbPassword = "root";
try{
$con = new Pdo('mysql:dbname=$databaseName;host=localhost', 'root', '');
}catch(PDOException $e){
var_dump($e);
}
?>
<?php
// in your main code
session_start();
if( !isset($_SESSION['id']))
{
header('Location: ../index.php');
}
$name = $_SESSION['name'];
$queue = $_POST['queue'];
$date = date("d/m/y");
$time = time("h:i:s");
// The try catch will help you to get the error
// I saw that in your query you say that you'll insert 7 columns but you're inserting only 4
// Look also if you have clauses like NOT NULL in your database
try{
// this will return you a statement object
// using this, it prevents SQL Injection
$stmt = $con->prepare('INSERT INTO table_data (name, date, time, queue, TarosID, Status, Reason) VALUES( :name, :date, :time, :queue)');
$stmt->execute( array( ':name' => $name, ':date' => $date, ':time' => $time
':queue' => $queue
) );
}catch(PDOException $e){
var_dump($e); die;
}
?>