0

我无法让它工作,它没有将数据发布到数据库,我对此完全陌生,任何帮助都很棒!

<?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";
    }
?>
4

2 回答 2

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')";
于 2013-05-20T12:38:22.247 回答
1

看起来您已将表名设置为变量,这很好,但您尚未定义它。此外,我强烈建议您清理$_POST变量以防止 SQL 注入。

请不要在新代码中使用 mysql_* 函数。 它们不再被维护,并且已经开始弃用过程。看到红框了吗?改为了解准备好的语句,并使用PDOMySQLi - 本文将帮助您决定使用哪个。

<?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 中的保留字,所以我建议使用反勾号运算符或者更改列名。

于 2013-05-20T12:45:37.553 回答