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を必要とするので、私は許容このことを知りません