0
<?php
    session_start();
    $con=mysqli_connect("localhost","root","","accting");
    $query = "USE accting";
    $result = mysqli_query($con,$query);

    $query = "INSERT INTO document (docDate, supplierName, refNo, vatReg, vpGoods, viGoods, nvPurchases, totalAmt, book, cash, account, termsMonth, termsDay) VALUES ('{$_POST['invoiceDate']}', '{$_POST['supplierName']}', '{$_POST['refNo']}', '{$_POST['vatReg']}', '{$_POST['amtVat']}', '{$_POST['vatInput']}', '{$_POST['nonVat']}', '{$_POST['total']}', '{$_POST['bookType']}', '{$_POST['cash']}', '{$_POST['account']}', '{$_POST['termsMonths']}', '{$_POST['termsDays']}',)";
    $result = mysqli_query($con, $query);

    echo "Add document successful.";
?>

コマンドの有無に$query = "USE accting";かかわらず、ページの印刷が [ドキュメントの追加に成功しました] にもかかわらず、エントリはデータベースに追加されません。ここで何が問題なのですか?

4

3 に答える 3

0

$_POST 配列をダンプして、実際にデータが送信されているかどうかを確認する必要があります。

session_start();
var_dump($_POST);

次に、各SQL呼び出しの後にSQLもエコーします

echo $query;

最後に、SQL インジェクションのリスクがあるため、既に述べたように、データベースに挿入する前に入力 ($_POST 配列) を検証する必要があります。

于 2013-10-25T00:42:12.957 に答える