0

PHP プログラムが、ブラウザに入力したレコードを SQL データベースに挿入しません。以下のコードを参照してください。このコードは、私が以前に尋ねたものを更新したものです。他の理由の中でも、セキュリティのために誰かがこれを提案しました。

すべてのプログラムがブラウザで正常に実行されてもエラーは発生しませんが、データベースをチェックするたびに、コードの実行後にエントリが入力されていません。何か不足していますか?

<html>
<head>
</head> 
<body>
<form action="register_development_file_1b.php" method="post">
    Email:  <input type="text" name="email"><br />
    Date:   <input type="text" name="date"><br />
    Time:   <input type="text" name="time"><br />
        <input type="submit" name="submit">
</form>

<?php
     if(isset($_POST['submit']))
     {
       $con = mysql_connect("localhost","username","password") or die(mysql_mysql);
       mysql_select_db("databasename", $con) or die(mysql_query("databasename", $con));

      $email = mysql_real_escape_string($_POST['email']);
      $date = mysql_real_escape_string($_POST['date']);
      $time = mysql_real_escape_string($_POST['time']);

       $sql = "INSERT INTO 
            signups ('signup_email_address', 'signup_date','signup_time') 
            VALUES  ('".$email."','".$date."','".$time."')";

        mysql_query($sql, $con) or die(mysql_error());

        mysql_close($con);
    }
?>
</body>
</html>
4

3 に答える 3

2

SQL クエリにタイプミスがあります。次に、フィールドの名前を の('signup_email_address', 'signup_date','signup_time')間に書いてはいけません''。これは、フィールド、テーブル、スキーマなどの名前ではなく、値の中で文字列にのみ使用されます。それらを引用符で囲みたい場合は、代わりに ` を使用してください。

于 2013-05-18T19:06:10.410 に答える
1

正しい差出人:

 $sql = "INSERT INTO 
            signups ('signup_email_address', 'signup_date','signup_time') 
            VALUES  ('".$email."','".$date."','".$time."')";

に:

 $sql = "INSERT INTO 
            signups (signup_email_address, signup_date,signup_time) 
            VALUES  ('".$email."','".$date."','".$time."')";

そして試してみてください。うまくいくはずだと思います。

于 2013-05-18T19:09:02.237 に答える
0

クエリは次のようになります

$sql = "INSERT INTO 
            signups (signup_email_address, signup_date,signup_time) 
            VALUES  ('$email','$date','$time')";
于 2013-05-18T19:13:06.493 に答える