当mysql_connect不适用于IIS上的PHP时,不会返回任何错误消息

时间:2012-03-07 15:20:28

标签: php mysql iis-6

我是PHP和MySQL的新手,最近在已运行IIS v6的Windows Server 2003服务器上安装了PHP v5.3.10和MySQL v 5.5.21。

PHP运行,我已经从MySQL 5.5命令行客户端在MySQL上创建了一个数据库。 但是,当我尝试使用以下命令从PHP访问数据库时:

echo "Open database";
$link = mysql_connect($host, $username, $password);
echo " link: $link";
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db($db_name, $link)or die("cannot select DB");

echo " database open";

我将以下内容返回到网页:

Open database

在返回mysql_connect命令后,不会生成任何错误消息,也不会生成任何错误消息 PHP到屏幕。

还试过下面的行也没有返回任何错误消息:

mysql_connect($host, $username, $password) or die('Cannot connect:' . mysql_error());

任何人都有任何想法为什么我无法建立连接并且无法从mysql_connect命令返回错误消息?

我已经检查了MySQL,我尝试将主机定义为%,localhost,本地主机IP和IP:端口号(来自my.ini中列出的端口号3306)无效。 我在mySQL中只用一个密码创建了一个'root'用户名(我在打开MySQL创建数据库时使用了这个用户名)

'php.ini'我放在'C:\ Program Files \ PHP'和'C:\ WINDOWS'中。
此文件包含'extension_dir =“C:\ Program Files \ PHP \ ext”'以指定扩展目录,并在文件末尾包含以下内容:

[PHP_PDO_MYSQL]

extension=php_pdo_mysql.dll

[PHP_MYSQL]

extension=php_mysql.dll

[PHP_MYSQLI]

extension=php_mysqli.dll

我也试过运行phpinfo()并返回mysqlnd的下表:

mysqlnd                enabled 
Version                mysqlnd 5.0.8-dev - 20102224 - $Revision: 321634 $  
Compression            supported  
SSL                    supported  
Command buffer         size  4096  
Read buffer            size  32768  
Read timeout           31536000  
Collecting statistics  Yes  
Collecting memory statistics  No  
Tracing                       n/a  

所以我认为php应该能够连接。

2 个答案:

答案 0 :(得分:4)

试试这个:

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

答案 1 :(得分:0)

镜像@Jrod:

  • 是error_reporting on?
  • 你检查了实例的error_log吗?

听起来有点失败,而且您的错误报告设置得不够高,无法显示。您可以尝试将其添加到脚本的顶部:

error_reporting(E_ALL);