2016-04-11 9 views
2

PHP PDOのプリペアドステートメントを使用してMS SQLに値を挿入したいのですが、SQL Serverに正常に接続されていると思いますが、アイデアはありません。私は、SQLサーバーPDO_SQLSRVはエラーを返さず、値を挿入できません

<!DOCTYPE html> 
    <html> 
    <head> 
     <title></title> 
    </head> 
    <body> 
    <h1 align='center'>Paycom Projects</h1> 
    <h5 align='center'>Paycom CRUD</h5><br/> 
    <?php 
     $serverName = "EDGEWEBMEDIA-PC\SQLEXPRESS"; 

     /* Connect using Windows Authentication. */ 
     try 
     { 
      $conn = new PDO("sqlsrv:server=$serverName ; Database=paycom", "sa", "edgeweb"); 
      $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     } 
     catch(Exception $e) 
     { 
      die(print_r($e->getMessage())); 
     } 

insert.phpに接続する方法

これは

<?php 

      include_once('connect.php'); 

      $stmt = $conn->prepare("INSERT INTO employee (firstname, lastname, email) 
       VALUES (:firstname, :lastname, :email)"); 
       $stmt->bindParam(':firstname', $firstname); 
       $stmt->bindParam(':lastname', $lastname); 
       $stmt->bindParam(':email', $email); 

       // insert a row 
       $firstname = "John"; 
       $lastname = "Doe"; 
       $email = "[email protected]"; 
       $stmt->execute() or die(print_r($stmt->errorInfo(), true)); 

       // insert another row 
       $firstname = "Mary"; 
       $lastname = "Moe"; 
       $email = "[email protected]"; 
       $stmt->execute() or die(print_r($stmt->errorInfo(), true)); 

       // insert another row 
       $firstname = "Julie"; 
       $lastname = "Dooley"; 
       $email = "[email protected]"; 
       $stmt->execute() or die(print_r($stmt->errorInfo(), true)); 

       echo "New records created successfully"; 
       } 
      catch(PDOException $e) 
       { 
       echo "Error: " . $e->getMessage(); 
       } 
      $conn = null; 

これの何が問題になっているのですか?私はすでに同じマシンでFramework(Laravel)を使ってこれを試してみましたが、完璧に動作しますが、私はこれをプレーンなPHP(フレームワークなし)を使ってテストしたいと思います。

テーブル、列を手動でSQL管理スタジオ

UPDATE

を通して添加される今私は

ini_set('display_errors',1); 
error_reporting(E_ALL | E_STRICT); 

を追加としてすぐにエラーがヌルに関連する正確なエラーは、知っていますid値

[Microsoft][SQL Server Native Client 11.0][SQL Server]Cannot insert the value NULL into column 'id', 

私の更新された質問は、私はこのエラーを防ぐことができますか?

更新

今、私はidフィールドがnullablerに設定され、テーブルを変更することで、データを挿入することですが、クエリ

を実行するとき、我々は、テーブル内のすべてのデータのIDを必要とするので、私は許容このことを知りません

答えて

2

は、これは私が

は、テーブルを削除し、再作成、それを解決する方法であること

を手に入れた

デザインに続いて
set id as not null, primary, and auto increment 

それ

Under Indentity Specification, set (Is Identity)=Yes and Indentity Increment=1