mysql_connect错误

时间:2012-10-27 13:21:15

标签: php

在下面的代码中,我看到echo1语句,之后我在UI上看不到任何内容。用户名和密码是正确的。但PHP似乎并没有连接到MySQL。甚至没有看到死亡陈述我做错了什么。遇到mysql_connect后,其余代码无效:

<?php    
echo "echo1==========";
$con = mysql_connect("localhost","root", "xxxx123") or die("Error connecting to database");
echo "+++++++++ echo2";
echo $con;
mysql_close($con);
  ?>          

5 个答案:

答案 0 :(得分:4)

你应该错过一个错误。添加:

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

在脚本的开头

答案 1 :(得分:1)

如果你像这样使用你的代码那么它就容易受到SQL注入攻击。我强烈建议您在将数据插入数据库时​​使用mysql_real_escape_string以防止SQL injections,作为快速解决方案或更好地使用PDOMySQLi

如果您打算使用mysql_*,我建议您阅读mysql_*函数的PHP手册章节, 他们指出,建议不要使用此扩展名来编写新代码。相反,他们说,您应该使用MySQLiPDO_MySQL扩展名。

我还检查了mysql_connect并发现了一个奇怪的规律性 - 如果你在"参数上使用mysql_connect,那么它无法连接,在我的情况下,当我测试它时,它只是描述的方式,所以,请尝试这样:

$con = mysql_connect('localhost','username','password');

"替换为',如PHP Manual示例所示,它可能会有效!

<强> EDITED

对于那些首先投票的人 - 尝试!我使用"在我的服务器上对其进行了测试,但它给了我一个错误: Warning: mysql_connect(): Access denied for user 。我使用PHP版本5.4.6!

使用SSH登录您的服务器并运行php --modules - 如果您在列表中没有看到mysql - 那么这就是您致命错误的原因。

答案 2 :(得分:1)

没有输出意味着致命错误。唯一可能的致命错误是“未定义的函数mysql_connect(除非某些内容确实搞砸了)。这意味着未安装mysql库,或者php.ini中可能未启用它文件。

检查所说的文件,当你在它上面时,转动error_reporting

答案 3 :(得分:0)

问题是没有安装ph5-mysql驱动程序。安装它并使其工作..现在mysql_connect()函数工作..谢谢所有帮助

答案 4 :(得分:0)

对于Tomcat 7,php.ini的默认目录实际上是C:\ windows。所以修改(启用模块,扩展等)php.ini应该被复制到C:\ windows。然后运行phpinfo();.它甚至可以在PHP 5.x上的Tomcat 7上正常工作。当我希望mysql语句能够工作时,我遇到了这个问题并且经历了很多困难。

即使遵循[779246](Run a php app using tomcat?)中的答案的所有指示,mysql语句也不起作用(Tomcat 7,PHP 5.2.16,PECL 5.2.5,Windows 7上的MySql 5.6) 。所以我开始研究&#34; phpinfo();&#34;如前段所述,仔细输出和使用的解决方案。如果你想使用PDO(这是PHP中普通的mysql_ *方法的未来),请确保在php.ini中启用mysql dll扩展和PDO扩展。