1

テーブル にレコードを挿入するフォームがあり、また、という別のテーブルに挿入してシステム ログpeopleを登録したいと考えています。log

これは次の形式です。

<form action="inserting.php" method="POST">
    
    <input type="text" name="name">
    <input type="text" name="mother">
    <input type="text" name="address">
    <input type="text" name="city">
    <input type="submit" name="submit" value="Insert">

</form>

そして、ページinserting.phpは次のようになります。

<?php

    if(isset($_POST['submit'])){
        
        $insert = mysqli_query($con, "INSERT INTO people ('id', 'name', 'mother', 'address', 'city') VALUES (NULL, '$_POST[name]', '$_POST[mother]', '', '$_POST[address]', '$_POST[city]')");
        $log = mysqli_query($con, "INSERT INTO log (id, name, date, time) VALUES (NULL, $_POST[name], $date, $time)");

        echo $_POST['name'] . "was successfully inserted on" . $time . "of" . $date; . "."
    }

?>

なにが問題ですか?どうやってするの?

4

3 に答える 3

0

引用符ではなく、列とテーブルの名前にバッククォートを使用します。自動インクリメント ID を想定しています。POST 名も引用します。

INSERT INTO people (`name`, `mother`, `address`, `city`) 
VALUES ('$_POST['name']', '$_POST['mother']', '', '$_POST'[address']', '$_POST['city']')
于 2013-10-29T13:44:46.540 に答える
0

テーブルログの列IDが主キーの場合、PK を NULL にすることはできないため、エラーが発生します。

そして、あなたのクエリは次のとおりです。

$log = mysqli_query($con, "INSERT INTO log (id, name, date, time) VALUES (NULL, $_POST[name], $date, $time)");
于 2013-10-29T13:44:52.547 に答える
0
  1. $_POSTクエリでraw を使用しないでください。一度もない!

  2. 準備済みステートメントを使用して、ユーザー データを挿入します。

  3. 常にクエリ結果mysqli_error()を確認し、どこから読んで何が悪いのかを確認してください。

この場合、入れていない$_POST[name]ため'、構文エラーが発生します。また、最初のクエリでは、'列名をラップするために ` の代わりに使用しています。

于 2013-10-29T13:44:25.497 に答える