在下面的代码中,我看到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);
?>
答案 0 :(得分:4)
你应该错过一个错误。添加:
ini_set('display_errors', 1);
error_reporting(E_ALL);
在脚本的开头
答案 1 :(得分:1)
如果你像这样使用你的代码那么它就容易受到SQL注入攻击。我强烈建议您在将数据插入数据库时使用mysql_real_escape_string以防止SQL injections,作为快速解决方案或更好地使用PDO或MySQLi。
如果您打算使用mysql_*
,我建议您阅读mysql_*
函数的PHP手册章节,
他们指出,建议不要使用此扩展名来编写新代码。相反,他们说,您应该使用MySQLi或PDO_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扩展。