php我的查询或php有什么问题吗
您好,请忽略所有评论我正试图在数据库中插入数据,但我的查询或脚本有问题,请帮助或添加一些建议,因为当我单击“提交”按钮时,它没有提交到我的数据库php我的查询或php有什么问题吗,php,mysql,Php,Mysql,您好,请忽略所有评论我正试图在数据库中插入数据,但我的查询或脚本有问题,请帮助或添加一些建议,因为当我单击“提交”按钮时,它没有提交到我的数据库 <?php include("connect.php"); session_start(); if( !isset($_SESSION['id'])) { header('Location: ../index.php'); } //foreach($_POST as $key
<?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();
?>
您需要在列列表周围加上括号,再次在值列表周围加上括号
如果您尝试了echo mysql\u error()
,您就会看到这一点
还有。。。
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\u查询,因为它们已被弃用。请使用mysqli\u查询
3.您的代码不适用于sql注入。请在stackoverflow中搜索相关主题
$query = "INSERT INTO sms_traffic_db.table_data name, date, time, queue, TarosID, Status, Reason VALUES '$name, $date, $time, $queue'";
列出要插入的七列,但仅列出四个值。MySQL可能抛出了一个错误,因为它们的计数必须匹配。我认为您必须打开到数据库的连接。每次对PDO
类进行查询时,都要放一个try-catch,这样使用起来更简单、更好
编辑
抱歉,没有看到顶部的包含
试试这个:
$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;
}
?>
请检查您的值字段,它只有5个值
剩余字段应为空
如果必须检查实际错误,请检查
$result = mysql_query($query) or mysql_error();
不确定您的问题,只要我们在这里,请注意mysql_*函数已经过时且不推荐使用。此外,您的代码极易受到SQL注入的攻击,因为您正在构造一个查询字符串,其中包含来自用户输入的未经转换的变量。1°使用mysqli.*
而不是mysql
。然后,在mysqli_query()
之前添加echo$query
,如果没有显示任何内容,则尝试显示错误:添加ini_集(“显示错误”,“打开”);error\u reporting(E\u ALL)
在脚本顶部**如果我添加mysqli,我会得到这个**警告:mysqli\u query()至少需要两个参数,其中一个参数在第27行的C:\xampp\htdocs\SMS\u Traffic\Includes\add\u topic.php中给出。error“我已经添加了括号,但仍然无法使用”mysql\u error()
?我使用了“$result=mysql\u query($query)或者死(mysql_error());'“你的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解第1行的“near')使用的正确语法,这意味着末尾的close parens是意外的。你能按现在的样子显示查询的全文吗?**我已经删除了额外的字段,但仍然无法工作**