我无法让这个工作,它不是将数据发布到数据库,我对这个全新,任何帮助都很棒!
<?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";
}
?>
答案 0 :(得分:1)
什么是$ sales看起来不应该是变量,假设它是一个表名,试试这个
$sql="INSERT INTO sales (client, date, amount) VALUES ('$client', '$date', '$amount')";
此外,日期是MYSQl中的一个保留字,虽然它可以在不使用反向操作符的情况下使用它,但最好像这样逃避它
$sql="INSERT INTO sales (client, `date`, amount) VALUES ('$client', '$date', '$amount')";
答案 1 :(得分:1)
看起来您已将表名设置为变量,这很好,但您尚未对其进行定义。此外,我强烈建议您清理$_POST
变量以防止SQL注入。
Please, don't use mysql_* functions in new code. 它们不再被维护,deprecation process已经开始了。看到 red box? 了解prepared statements, 并使用PDO或 MySQLi - 这个 article会 帮你决定哪个。
<?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中的保留字,因此我建议使用后退操作符或更改列名。