2012-05-29 43 views
1

目前,我有我有下面的代碼有問題..PDOException錯誤PHP SQL「名字不能爲空」

口口聲聲說

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> 
+0

什麼是您的查詢字符串中的網址? –

+0

如果這有幫助..我使用Dreamweaver來製作代碼和即時通訊使用XAMPP(PHPmyadmin,MySQL,APACHE) – Tuzki

+0

您的代碼將無法正常工作,除非您查詢字符串包含每個參數的'key = value'對。 –

回答

5

工作向後:

  • MySQL的抱怨空值;那爲什麼收到null?
  • 如果在bindParam()中傳遞一個空值,則PDO將null傳遞給MySQL;爲什麼我們傳遞一個空值?
  • 當PHP中的變量沒有被定義,並且您嘗試使用它時,它將a)發出警告並且b)隱式地將其設置爲空;我們爲什麼要使用未定義的變量?
  • $_GET['firstname']未定義(其中包括);爲什麼沒有定義?
  • 您在表單中使用的是method="post",因此表單條目將通過$_POST而不是$_GET傳遞。
0

它發生是由於數據不匹配我面臨同樣的問題,而運行過程中出現一個cronjob以更新的產品在Magento部分產品已被刪除,腳本是在數據庫中的表上運行,其中產品已被刪除的條目被掛起和同時更新產品使用產品id其給出的錯誤PDOException'與消息'SQLSTATE [23000]:

我設置條件來檢查產品是否存在和它對我工作正常。

相關問題