2016-05-14 13 views
0
<?php 
    require_once 'Connect.php'; 


    //Prepare HTML insert statement binding parameters 
    $stmt = $conn->prepare("INSERT INTO records (`Title`, `FirstName`, `LastName`, `Gender`, `DOB`, `Mem.Expiry`, `Mem.Type`, `EmailAddress`) 
    VALUES (:Title, :Fname, :Lname, :Gender, :DOB, :MemX, :MemType, :Email)"); 



     $title = $_POST['Title']; 
     $fname = $_POST['Fname']; 
     $lname = $_POST['Lname']; 
     $gender = $_POST['Gender']; 
     $dob = $_POST['DOB']; 
     $memx = $_POST['MemX']; 
     $memtype = $_POST['MemType']; 
     $email = $_POST['Email']; 


    //Attempt row insertion by executing prepared statement 
    try 
    { 
     //Insert a row 

     $stmt ->bindParam(':Title', $title); 
     $stmt ->bindParam(':Fname', $fname); 
     $stmt ->bindParam(':Lname', $lname); 
     $stmt ->bindParam(':Gender', $gender); 
     $stmt ->bindParam(':DOB', $dob); 
     $stmt ->bindParam(':MemX', $memx); 
     $stmt ->bindParam(':MemType', $memtype); 
     $stmt ->bindParam(':Email', $email); 

     $stmt->execute(); 

    } 
    catch (PDOException $e) 
    { 
     echo $e->getMessage(); 
    } 


?> 

localhostに接続されたデータベースを更新するWebフォームがあります。私はプライマリキーを実装したいと思います。 ID列をインクルードしてプライマリキーに設定すると、上記のコードに自動で入力する方法を実装できますか?私はオンラインで見ましたが、役に立たないものは見つかりませんでした。主キーの実装SQL

データベースをクリアして主キーを挿入しました。フォームに記入すると、最初の入力がアップロードされ、主キーは0になります。これ以降、他の情報は登録されていませんか?

+0

を探していると思います。 Auto Incrementの場合は、INSERTクエリから完全に除外してください。 MYSQLはその列に次の番号を作成します。 – RiggsFolly

+0

MYSQLにすべての仕事をさせるとき、最初のAutoIncrementキーは通常1です – RiggsFolly

+0

別注: '$ conn-> prepare()'は 'try/catch'の中にあるべきです。これはまさにそうである可能性があり、実際には 'bindParam'と' execute'よりも例外をスローする可能性が高い – RiggsFolly

答えて

0

私はあなたがいけないAuto Increment

+0

私はデータベースをクリアし、主キーを挿入しました。フォームに記入すると、最初の入力がアップロードされ、主キーは0になります。これ以降、他の情報は登録されていませんか? – JSint

+0

新しい行をテーブルに挿入するたびに、mysqlは新しいIDを作成する必要があります。 (他の値が設定されていない場合は1で始まります)。 CREATEステートメントは役に立ちます。 (またはこれを使用した場合はALTERテーブル)。 –