5

在下面的代码中,我看到了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);
  ?>          
4

5 回答 5

4

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

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

在脚本的开头

于 2012-10-27T13:24:29.717 回答
1

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

检查所述文件,然后在打开时打开error_reporting

于 2012-10-27T13:33:24.423 回答
0

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

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

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

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

替换"PHP 手册'示例中显示的那样,它可能会起作用!

已编辑

对于那些不赞成投票的人-先尝试!我在我的服务器上测试了它",它给了我一个错误:Warning: mysql_connect(): Access denied for user. 我使用 PHP 5.4.6 版!

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

于 2012-10-27T13:28:44.813 回答
0

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

于 2012-10-27T17:17:11.743 回答
0

对于 Tomcat 7,php.ini 的默认目录实际上是 C:\windows。因此修改(启用模块、扩展等)php.ini 应复制到 C:\windows。然后运行 ​​phpinfo();。即使在 PHP 5.x 旁边的 Tomcat 7 上,它也应该可以正常工作。当我希望 mysql 语句正常工作时,我遇到了这个问题并且挣扎了很多。

即使按照 [779246] 中答案的所有说明(使用 tomcat 运行 php 应用程序?),mysql 语句也不起作用(Windows 7 上的 Tomcat 7、PHP 5.2.16、PECL 5.2.5、MySql 5.6)。所以我开始研究“phpinfo();” 如前一段所述,仔细输出并使用解决方案。如果您想使用 PDO(这是 PHP 中普通 mysql_* 方法的未来),请务必在 php.ini 中启用 mysql dll 扩展和 PDO 扩展。

于 2014-08-08T12:14:54.717 回答