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

テーブル名を変数として設定したようですが、これは問題ありませんが、定義していません。$_POSTまた、 SQL インジェクションを防ぐために変数をサニタイズすることを強くお勧めします。

新しいコードで 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;
}

また、dateMySQL の予約語なので、バックティック演算子を使用するか、列名を変更することをお勧めします。

于 2013-05-20T12:45:37.553 に答える
1

$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')";
于 2013-05-20T12:38:22.247 に答える