2016-04-11 18 views
2

Ich möchte Werte in MS SQL mit PHP PDO vorbereitete Anweisung einfügen, bin ich sicher, dass ich erfolgreich mit SQL Server verbunden bin, aber ich habe keine Ahnung, warum kann ich keine Daten darauf einfügen . DiesePDO_SQLSRV gibt keinen Fehler zurück, kann keine Werte eingeben

ist, wie ich zu SQL Server verbinden

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

Was mit diesem falsch? Ich habe das bereits mit einem Framework (Laravel) in der gleichen Maschine ausprobiert, und es funktioniert einwandfrei, aber ich möchte das mit plain php (no framework) testen.

Tabellen werden Spalten durch SQL Management Studio manuell hinzugefügt

UPDATE

Jetzt weiß ich, die genauen Fehler sind, wie ich

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

Jetzt ist der Fehler im Zusammenhang hinzugefügt wird auf null ID-Werte

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

Meine aktualisierte Frage ist, habe ich diesen Fehler verhindern?

aktualisieren

Nun Daten einfügen kann ich durch die Tabelle zu modifizieren, wird id Feld nullabler gesetzt, aber ich weiß, das nicht akzeptabel, da wir id für jeden Datensatz in der Tabelle benötigen, wenn Abfrage durchführen

Antwort

2

Verstanden

Dies ist, wie ich es gelöst

die Tabelle löschen und neu erstellen

set id as not null, primary, and auto increment 

Dann in Design

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

Das ist es

Verwandte Themen