尝试使用php将日期插入sql server 2008r2时出现http错误500

时间:2016-05-25 15:04:53

标签: php sql-server-2008

好的,请相信我是一个初学者,当谈到PHP。 我试图在我的SQL数据库(SQL Server 2008r2)中插入一些值,但我不断收到http错误500(内部服务器错误)。我无法弄清楚我做错了什么,所以也许你们中的一些人可以提供帮助。

我的connection.php:

<?php
try
{
    //connectie met sql-server, in dit geval met windows authenticatie
    $pdo = new PDO('sqlsrv:server=.\SQLEXPRESS;database=Marcel;','','');  
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e)
{
    echo 'Unable to connect to the database server.' . $e->getMessage();
    exit; 
}
?>

我的表格:

<form method="post" action="InsertBlogEntry.php">
    <div class="form-group">
         <label for="Artikelnaam">Artikelnaam:</label>
         <input type="text" class="form-control" id="Artikelnaam" name="Artikelnaam">
    </div>
    <div class="form-group">
         <label for="Artikelonderwerp">Artikelonderwerp</label>
         <input type="text" class="form-control" id="Artikelonderwerp" name="Artikelonderwerp">
    </div>
    <div class="form-group">
         <label for="Artikeltext">Artikeltext</label>
         <textarea class="form-control" id="Artikeltext" rows="10" name="Artikeltext" style="resize: vertical;"></textarea>
    </div>
    <button type="submit" class="btn btn-default" style="display: block; margin: auto;">Submit</button>
</form>

我的InsertBlogEntry.php:

<?php
    //set local time for $timeSubmitted
    setlocale(LC_TIME, 'NL_nl');

    //define values
    $timeSubmitted = strftime('%A %d %B %Y om %H:%M',time());
    $Author = $_SESSION['login_user'];
    $AtrikelNaam = $_POST['Artikelnaam'];
    $Onderwerp = $_POST['Artikelonderwerp'];
    $ArtkikelInhoud = $_POST['Artikeltext'];

    //include connection
    include ('connection.php');

    //statement
    $sql = sqlsrv_query("INSERT INTO BlogEntries (BlogTimeSubmitted, BlogAuthor, ArtikelName, ArtikelOW, ArtikelInhoud) VALUES ('$timeSubmitted', '$Author', '$AtrikelNaam', '$Onderwerp', '$ArtkikelInhoud')");

    //prepare and execute query
    $stmt = sqlsrv_query($pdo, $sql);

     if($stmt)
     {
         echo 'succes';
     }
     else
     {
        echo 'failure';
        die (print_r( sqlsrv_errors(), true))
     }

     //close connection
     sqlsrv_close($pdo);
?>

我试图在以下表格中插入值:

CREATE TABLE BlogEntries
(
ID int not null IDENTITY(1, 1),
BlogTimeSubmitted datetime,
BlogAuthor varchar(64),
ArtikelName varchar(64),
ArtikelOW varchar (64),
ArtikelInhoud varchar(max)
);

//just for dropping the table
drop table BlogEntries

alter table BlogEntries
ADD CONSTRAINT PK_BlogID PRIMARY KEY (ID)

我真的希望你们中的一些人可以帮助我解决这个问题,请再次温柔,因为我是一个完整的php初学者:)

修改

我在下面添加了一些可能提供更多信息的IIS日志,我试过分析和谷歌搜索它们但是我想不出来可能你们中的一些人可以:

2016-05-25 17:41:00 ::1 POST /marcel+website/InsertBlogEntry.php - 22926 - ::1 Mozilla/5.0+(Windows+NT+10.0;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/50.0.2661.102+Safari/537.36 http://localhost:22926/marcel%20website/AddBlogEntry.php 500 0 0 6

2016-05-25 17:41:00 ::1 POST /marcel+website/InsertBlogEntry.php - 22926 - ::1 Mozilla/5.0+(Windows+NT+10.0;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/50.0.2661.102+Safari/537.36 http://localhost:22926/marcel%20website/AddBlogEntry.php 500 0 0 8

2016-05-25 17:41:00 ::1 POST /marcel+website/InsertBlogEntry.php - 22926 - ::1 Mozilla/5.0+(Windows+NT+10.0;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/50.0.2661.102+Safari/537.36 http://localhost:22926/marcel%20website/AddBlogEntry.php 500 0 0 11

1 个答案:

答案 0 :(得分:0)

我不打算对500进行评论,因为这表明PHP中存在更严重的问题。

我发现在使用MS SQL服务器时,可靠运行的唯一日期格式为:

YYYYMMDD hh:mm:ss

在PHP中,那是

%Y%m%d %H:%M:%S

<强>更新 您似乎错过了;die行的else