1

現在、以下のコードに問題があります。

それは言い続けます

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: 
Integrity constraint violation: 1048 Column 'Firstname' cannot be null' 
in C:\xampp\htdocs\clubresults\checkregister.php:30 Stack trace: #0 
C:\xampp\htdocs\clubresults\checkregister.php(30): PDOStatement->execute() 
#1 {main} thrown in C:\xampp\htdocs\clubresults\checkregister.php on line 30

私は知っていることをすべて試しましたが、そのエラーを取り除くことはできません...どんな種類の助けも本当にありがたいです:Dこのphpファイルはcheckregister.phpと呼ばれています

  $pdo = new PDO('mysql:host=localhost;dbname=clubresults', 'root', '12345678');
  #Set Error Mode to ERRMODE_EXCEPTION.
  $pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  

  $stmt = $pdo->prepare('INSERT INTO members 
           (firstname, surname, DD, MM, YYYY, 
           email, Player1, Player2, Player3, Player4, Player5)
          VALUES 
           (:firstname, :surname, :DD, :MM, :YYYY, 
           :email, :Player1, :Player2, :Player3, :Player4, :Player5)');

  $stmt->bindParam(':firstname', $_GET['firstname']);
  $stmt->bindParam(':surname', $_GET['surname']);
  $stmt->bindParam(':DD', $_GET['DD']);
  $stmt->bindParam(':MM', $_GET['MM']);
  $stmt->bindParam(':YYYY', $_GET['YYYY']);
  $stmt->bindParam(':email', $_GET['email']);
  $stmt->bindParam(':Player1', $_GET['Player1']);
  $stmt->bindParam(':Player2', $_GET['Player2']);
  $stmt->bindParam(':Player3', $_GET['Player3']);
  $stmt->bindParam(':Player4', $_GET['Player4']);
  $stmt->bindParam(':Player5', $_GET['Player5']);
  $stmt->execute();

これは別のphpファイルの私のフォームです:

<form name="register" method="post" action="checkregister.php">

<!--Text, using <p> tag for new line-->
Main Account Registration <p>
* All Fields Mandatory <P>


<div class="required_field">
<label for="leadername">Team Leader's First Name</label>
<input name="firstname" type="text" value="hihi"><p>
<span id="firstnameerror" class="error"></span>
</div>

the same code repeats for each of the other ones such as Surname, DD MM YY, etc

<input type="submit" name="submitbutton" id="submitbutton" value="Register">
<input type="reset" name="resetbutton" id="resetbutton" value="Clear all Fields">
</form>
4

2 に答える 2

5

逆方向に作業する:

  • MySQLはnull値について文句を言います。では、なぜnullが受信されるのでしょうか。
  • null値が渡された場合、PDOはMySQLにnullを渡しますbindParam()。なぜnull値を渡すのですか?
  • PHPの変数が定義されておらず、それを使用しようとすると、a)警告が発行され、b)暗黙的にnullに設定されます。なぜ未定義の変数を使用しているのですか?
  • $_GET['firstname']定義されていません(とりわけ)。なぜ定義されていないのですか?
  • フォームで使用method="post"しているため、フォームエントリは。$_POSTの代わりに経由で渡されます$_GET
于 2012-05-29T01:54:58.287 に答える
0

データの不一致が原因で発生します。cronjobを実行してmagentoで製品を更新しているときに同じ問題が発生しました。一部の製品が削除され、削除された製品のエントリが保留されているデータベースのテーブルからスクリプトが実行され、製品を使用して製品を更新していました。メッセージ'SQLSTATE[23000]でエラーPDOException'を与える​​ID :

製品の有無を確認する条件を設定しましたが、問題なく動作します。

于 2016-08-11T19:59:18.273 に答える