2016-04-11 3 views
2

Я хочу вставить значения в MS SQL с помощью подготовленного оператора PHP PDO, я уверен, что я успешно подключен к SQL Server, но у меня нет идеи, почему я не могу вставлять данные на нее ,PDO_SQLSRV не возвращает ошибку, не может вставить значения

Это, как я подключиться к SQL серверу

<!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); 

Теперь ошибка связана с обнулить идентификационные значения

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

Мой обновленный вопрос: не могу ли я предотвратить эту ошибку?

Update

Теперь я могу вставить данные, изменив таблицу, поле идентификатора устанавливаются в nullabler, но я знаю, что это не приемлем, так как нам нужен идентификатор для каждых данных в таблице при выполнении запроса

ответ

2

Понял

Это, как я ее решил

Отбросьте таблицу и воссоздать

set id as not null, primary, and auto increment 

Тогда в дизайне

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

Это его

Смежные вопросы