将新数据发布到数据库


Posting new data to database

我不能得到这个工作,它不是张贴数据到数据库,我是完全新的这和任何帮助是伟大的!

<?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中是一个保留字,所以我建议使用反打号操作符或更改列名。