2013-12-12 117 views
1

我认为这是一个愚蠢的问题,但我不明白为什么它正在发生......我想用这个简单的代码连接到我的MySQL数据库:PHP/MySQL连接

<html> 
    <head> 
     <title>File1</title> 
    </head> 
    <body> 
    <?php 
    $con=mysql_connect("localhost","root","") or die("Failed to connect to MySQL: " . mysql_error()); 
    $db=mysql_select_db("Users",$con) or die("Failed to connect to MySQL: " . mysql_error()); 

    if (mysql_error()) { 
     echo "Failed to connect to MySQL: " . mysql_error(); 
    } 
    ?> 
    </body> 
</html> 

至于用户,我使用根。问题是root需要密码。所以,通过这个代码,我应该在屏幕上获得“无法连接到MySQL”,对吧?但是,屏幕是白色的。

为什么白色而不是显示“无法连接...”?

非常感谢!

+2

请考虑PDO和MySQLi的数据库连接。 Mysql_ *函数正在被弃用 –

+0

在您的代码中找不到任何错误!这就是为什么它显示空白页 –

+0

使用'mysql_connect'函数折旧。改用'mysqli_connect'函数。 –

回答

0

我认为错误并不在你的服务器显示的,里面你的php.ini添加或这条线的变化值:

display_errors = on 

然后重启你的网络服务器。

+0

我真的很好奇,在这里如何显示错误会影响'die()'的输出...... – jeroen

0

可能是一个致命错误隐藏的简单情况?

使用这个功能将错误的:

error_reporting(E_ALL); 
ini_set('display_errors', true); 
0

在您的页面中,您的连接已建立,没有成功消息,也没有其他浏览器输出。所以这似乎是空白的屏幕。

if ($con) {  
    echo "Connection successful!!"; 
} 
0

你没有得到任何输出的原因是因为or die。 die()停止脚本的执行。

$con=mysql_connect("localhost","root",""); 
$db=mysql_select_db("Users",$con); 
+1

它确实会停止脚本的执行;但它也应该输出你传入的字符串的内容作为参数。 – andrewsi

+0

@ andrewsi-显示字符串取决于“display_errors”配置值。无论display_errors的值如何,都应显示用户的回显。 –

+0

'display_errors'配置您是否看到PHP内部生成的错误,警告和通知。如果您的display_errors设置被设置为隐藏所有内容,'die()'的内容仍会显示。 – andrewsi

0

您的$db变量未分配。

使用此相反,通过去除$db=

mysql_select_db("Users",$con) or die("Failed to connect to MySQL: " . mysql_error()); 

此外,mysql_功能已被弃用。有关更多信息,请访问PHP.net网站。

我建议你开始使用mysqli_预处理语句或PDO来代替。

警告

这个扩展不赞成PHP 5.5.0的,并会在将来被移除。相反,应该使用MySQLi或PDO_MySQL扩展。另请参阅MySQL:选择API指南和相关FAQ以获取更多信息。

0

错误显示开启或关闭之间的差异是在脚本通过die()命令退出之前得到的警告。

你总是会看到在输出端通过die()打印的消息,因为这是无关的任何PHP错误处理:

无法连接到MySQL:拒绝访问用户“根” @”本地主机' (使用密码:否)

我能想到的消息没有显示的唯一原因是php没有被执行;例如,如果您的文件是.html文件而不是.php文件。这将导致一个空白页面,因为php部分的开头<将被视为html标签的开头,同样适用于结束标签。

检查输出源将确认。