1

私はコーディングに不慣れです。私はcontactsというMYSQLデータベース、フィールドid、firstname、lastname、emailaddress、postalcode、phonenumberを持つcontactstableというテーブルを設定しました。auto_increment、pkフィールドであるidを除いて、それぞれがテキストまたはvarcharです。接続でエラーが発生することはなく、mysqli_connect_error()メソッドを介してエラーが中継されることもありません。クエリは実行されず、クエリは実行されません。理由がわかりません。

<html>
<head>
    <title>Registration</title>     
</head>
<body>

      <h1>Register with Us!</h1>

      <h2>Registration Complete!</h2>
      <div class="feedback-container" <?= isset($_REQUEST["first-name"])? "style=\"display:block\"": "style=\"display:none\""; ?>>
         <?php

          $firstname = $lastname = $emailaddress = $postalcode = $phonenumber = NULL;

          if (isset($_REQUEST["first-name"])){
           $firstname = $_REQUEST["first-name"];
           $lastname = $_REQUEST["last-name"];
           $emailaddress = $_REQUEST["email-address"];
           $postalcode = $_REQUEST["postal-code"];
           $phonenumber = $_REQUEST["phone-number"];

           $dbconn = new mysqli();
           $dbconn->connect("localhost","root","","contacts");

           if(mysqli_connect_error()){
             echo "Connection Failed";
           }else{
             echo "Connection Established";
           }   

           $query = "INSERT INTO 'contactstable' ('firstname', 'lastname', 'emailaddress','postalcode','phonenumber') VALUES ('$firstname', '$lastname', '$emailaddress', '$postalcode', '$phonenumber')";             

           if ($dbconn->query($query) == TRUE){
              echo ("Thank you for registering with us. We will shortly send a confirmation email to $emailaddress.");
           }else{
              echo ("<p>Your contact information was not added to our database. Please try again later or contact our webadmin at webadmin@gmail.com</p>");
           }

          }

         ?>
      </div>
</body>

実行すると、次のように出力されます。「接続が確立されました」「連絡先情報がデータベースに追加されていません。後でもう一度試すか、webadmin@gmail.comのwebadminに連絡してください」エラーメッセージはありません。更新されたデータはありません。

4

3 に答える 3

1

私はこれを作ります

  $query = "INSERT INTO 'contactstable' ('firstname', 'lastname', 'emailaddress','postalcode','phonenumber') VALUES ('$firstname', '$lastname', '$emailaddress', '$postalcode', '$phonenumber')"; 

こんな風に見える

  $query = "INSERT INTO contactstable (firstname, lastname, emailaddress,postalcode,phonenumber) VALUES ('$firstname', '$lastname', '$emailaddress', '$postalcode', '$phonenumber')"; 
于 2012-10-30T03:03:11.917 に答える
0

フィールド名を引用する場合は、バッククォートを使用します。

$query = "INSERT INTO `contactstable` (`firstname`, `lastname`, `emailaddress`,`postalcode`,`phonenumber`) VALUES ('$firstname', '$lastname', '$emailaddress', '$postalcode', '$phonenumber')";

"設定すればも使えますSET sql_mode='ANSI_QUOTES'

http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html

于 2012-10-30T03:14:27.290 に答える
0

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

    INSERT INTO `contactstable`
 (`firstname`, `lastname`, `emailaddress`,`postalcode`,`phonenumber`)
 VALUES
 ('$firstname', '$lastname', '$emailaddress', '$postalcode', '$phonenumber')
于 2012-10-30T03:09:42.277 に答える