PHP和MySQL无法通信


9

我得出的结论是我的PHP安装和MySQL安装不相伴;我正在制作我的第一个使用MySQL内容的网页,但是经过两天,手册页,在线文档和数十个教程,我只是无法使PHP / MySQL部分正常工作。我有一个已建立的家庭Web服务器(我是唯一的管理员/用户),该服务器运行Apache并托管我的网页。我已经安装了MySQL,并且能够通过Terminal创建和查询数据库。我已经安装了PHP,并且可以使用echo将文本打印到文档中。但是,当我使用MySQL时,一切都会改变……

我有一个页面,其中包含初始化内容。包含几段硬编码的HTML,然后包含PHP代码以访问MySQL。当我第一次加载页面时,所有结果都是空白页面。我注释掉了PHP部分,然后重新加载以确认纯HTML仍然可以正常工作。因此,PHP的某些部分阻止了任何页面的加载。

要开始对我的代码进行故障排除,我留下了所有PHP代码注释,但以下服务器连接代码除外,该代码已从多个不同的教程改编而成:

<?
echo("<p>PHP is working</p>"); 
$ses = mysql_connect("localhost","username","password");
if(!$ses){
 echo("<p>Connection to content server failed.</p>");
 exit();
}
echo("<p>Database Connected</p>");
?>

加载页面时,除了读取“ PHP正在运行”的段落外,还加载了起始HTML,但不会显示失败或成功消息。我从代码中删除了If结构-从而仅保留了两个回声和mysql_connect-并得到了相同的结果。

似乎mysql_connect功能导致服务器在运行时停止加载代码,但是我对如何解决它的想法不完整。记录:我已经修改了php.ini文件以包含“ connection = msql.so”行,并且我正在使用MySQL 5.5,Apache 2.2.22,PHP 5.3.10,Ubuntu 12.04。另外,我的路由器和调制解调器都已配置为将端口3306转发到服务器-尽管我看不到这是必需的-并且我的MySQL用户名和密码已经过三遍检查,并且与我成功使用的用户名和密码相同在终端。

我想念什么?


1
用正确的用户名(可能是root)和密码替换“用户名”和密码
Tachyons 2012年

2
是的,我做到了。我只是认为将用户名和密码丢到论坛上不是一个好主意。正如我在最后所说,我已经多次检查了用户名和密码,以确保它与我用来通过终端成功创建,访问和编辑数据库的内容匹配。
Casey Hungler 2012年

我还尝试用127.0.0.1以及服务器的本地和全局IP地址替换localhost,但是它们都不起作用。
Casey Hungler 2012年

1
您安装了php5-mysql吗?
劳伦特

我很确定,但是我会再试一次。
Casey Hungler 2012年

Answers:


9

一切看起来都很好,所以我认为您的安装未完成。为了使mysql和php通信,您需要安装以下php5-mysql 软件包:

sudo apt-get install php5-mysql

注意:我必须先重新启动计算机,然后才能运行。
user124384

3

安装php5-mysql软件包并使用mysqli_connect代替mysql_connect


谢谢,其他人也建议这样做,它奏效了!不过,我很好奇,在搜索中遇到了有关mysqli的内容(而且PDO通常也位于其中),这是什么?是什么让它比普通的mysql更好?
Casey Hungler

MySQLi是改进版本。
猫头鹰

据我所知,您应该使用phpi团队推荐的mysqli,而mysql_connect不再用于开发,而仅用于维护。我认为mysql_connect不接受准备好的语句,例如,许多其他事情。
劳伦特


1
sudo apt-get install php5-mysql

从找到Tomcat版本/etc/init.d/。应该有一个名为tomcat7的文件,因此7是版本

sudo service tomcat7 stop 
sudo service tomcat7 start

有时,计算机重新启动有助于解决其他问题。重新启动后,不要忘记运行:

sudo service tomcat7 start 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.