我不能得到这个工作,它不是张贴数据到数据库,我是完全新的这和任何帮助是伟大的!
<?php
$connection = mysql_connect('server', 'user', 'pass') or die(mysql_error());
mysql_select_db('db') or die(mysql_error());
$client = $_POST['client'];
$date = $_POST['date'];
$amount = $_POST['amount'];
$sql = "INSERT INTO $sales (client, date, amount) VALUES ('$client', '$date', '$amount')";
$result = mysql_query($sql, $connection);
if ($result) {
echo "Successful";
echo "<BR>";
echo "<a href='insert.php'>Back to main page</a>";
} else {
echo "ERROR";
}
?>
$sales看起来不应该是变量,假设它是一个表名,试试这个
$sql="INSERT INTO sales (client, date, amount) VALUES ('$client', '$date', '$amount')";
另外,date在MYSQl中是一个保留字,虽然可以不带反勾号操作符使用它,但最好像这样转义
$sql="INSERT INTO sales (client, `date`, amount) VALUES ('$client', '$date', '$amount')";
看起来您已经将表名设置为一个变量,这很好,但是您还没有定义它。此外,我强烈建议清理您的$_POST
变量以防止SQL注入。
请不要在new中使用mysql_*函数代码。它们不再被维护和弃用有关程序已经开始。看到那个红盒子?了解准备声明相反,并使用PDO或MySQLi -这个文章将帮你决定。
<?php
$mysqli = new mysqli('host', 'user', 'password', 'database');
$client = $_POST['client'];
$date = $_POST['date'];
$amount = $_POST['amount'];
$sql = "INSERT INTO sales (client, `date`, amount) VALUES ('$client', '$date', '$amount')";
$result = $mysqli -> query($sql);
$num = $mysqli -> affected_rows;
if($num == 1){
echo 'Success';
}else{
echo 'Error: '.$mysqli -> error;
}
另外,date
在MySQL中是一个保留字,所以我建议使用反打号操作符或更改列名。