PDOException 错误 PHP SQL“Firstname 不能为空”


PDOException error PHP SQL "Firstname Cannot be Null"

我目前对下面的代码有问题。

它一直在说

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>

向后工作:

  • MySQL抱怨空值;那么为什么接收空值呢?
  • 如果在bindParam()中传递了空值,PDO将null传递给MySQL;为什么我们要传递一个null值?
  • 当 PHP 中的变量未定义并且您尝试使用它时,它将 a) 发出警告和 b) 隐式将其设置为 null;为什么我们使用未定义的变量?
  • $_GET['firstname']没有定义(以及其他);为什么没有定义?
  • 您在表单中使用method="post",因此表单条目通过$_POST传递,而不是$_GET

由于数据不匹配而发生,我在运行 cronjob 以更新 magento 中的产品时遇到了同样的问题,其中一些产品被删除,脚本正在从数据库中的表运行,其中已删除产品的条目处于挂起状态,在使用产品 ID 更新产品时,它给出了错误 PDOException",并带有消息"SQLSTATE[23000]:

我设置条件来检查产品是否存在,它对我来说工作正常。