【发布时间】:2016-02-13 21:19:31
【问题描述】:
我得到了所有插件的工作,一些非官方的 php(5.6) 的 pdo 驱动程序
这是我的 php;
<?php
$head = $_POST['title'];
$bread = $_POST['html'];
$author = $_POST['selectlist1'];
$postdate = date('y-m-d h:i:s',time());
$cat = $_POST['selectlist2'];
$serverName = 'SERVER\SQLEXPRESS';
$db = new PDO('sqlsrv:Server=$serverName;Database=blog', 'sa', '******');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'INSERT INTO dbo.blog_posts (blog_title, blog_post, blog_author, blog_date, blog_category) VALUES (:head, :bread, :author, :postdate, :cat)';
$query = $db->prepare( $sql );
$query->execute( array(':head'=>$head, ':bread'=>$bread, ':author'=>$author, ':postdate'=>$postdate, ':cat'=>$cat ) );
?>
我得到了错误:
致命错误:带有消息“SQLSTATE[08001]”的未捕获异常“PDOException”:[Microsoft][SQL Server Native Client 11.0]Named Pipes Provider:无法打开与 SQL Server [53] 的连接。 ' 在 C:\inetpub\wwwroot\blog\post.php:9 堆栈跟踪:#0 C:\inetpub\wwwroot\blog\post.php(9): PDO->__construct('sqlsrv:Server=$.. .', 'sa', '*****') #1 {main} 在第 9 行的 C:\inetpub\wwwroot\blog\post.php 中抛出
我已经启用了命名管道等我不知道我做错了什么......我已经用谷歌搜索了几个小时...... 而不是 $serverName 我尝试使用 localhost,127.0.0.1 等,但我无法让它工作!
经过进一步挖掘后,我发现命名管道提供程序:无法打开与 SQL Server [53] 的连接是某种网络问题,不知道是什么问题...
好吧,我想我正在路上,现在我明白了:
致命错误:带有消息的未捕获异常“PDOException” 'SQLSTATE[22007]:[Microsoft][SQL Server Native Client 11.0][SQL [Server]nvarchar 数据类型到 datetime 数据类型的转换 导致超出范围的值。在 C:\inetpub\wwwroot\blog\post.php:15 堆栈跟踪:#0 C:\inetpub\wwwroot\blog\post.php(15): PDOStatement->execute(Array) #1 {main} 在第 15 行的 C:\inetpub\wwwroot\blog\post.php 中抛出
【问题讨论】:
-
你的 PHP 代码是在 Windows 机器上吗?
-
@JeroenFlamman 是的先生
-
糟糕,这是一个不必要的问题 - 错误清楚地指出了 'C:\inetpub\wwwroot'
-
我正在运行我自己的带有 mysql 和 mssql 的 iis 服务器,我想将 abit 与两个 db 处理程序混合使用
-
我在 Linux 机器上的 mssql 连接方面有更多经验 - 恐怕我在这里帮不上什么忙..
标签: php sql-server pdo