3

我最近在我的服务器上安装了 Ubuntu,替换了 Windows。我的网站在 Windows/XAMPP 下运行良好,但在 Ubuntu 下运行良好。我尝试了一个简单的数据库连接:

<?php
    $con = mysql_connect("localhost", "root", "mypassword") or die ("connection error");
    mysql_select_db("db1", $con) or die ("db selection error");
    $qry = mysql_query("SELECT * FROM atable");
    while($row = mysql_fetch_object($qry)) {
        echo $row->id;
    }
?>

但是当我加载页面时,什么也没有发生。php工作正常,

<?php echo "test"; ?>

正在按预期工作......

我的(测试目的)设置是:

  • Ubuntu 11.04 和 LAMP
  • my.cnf 中的 mysql 绑定地址设置为 0.0.0.0
  • mysql 的root-user 的host 设置为%,权限被授予.
  • php5 的 extension_dir 设置为“/usr/lib/perl5/auto/DBD/mysql/mysql.so”

我错过了什么/做错了什么?

4

3 回答 3

2

你安装php-mysql包了吗?如果没有,请安装它。在 ubuntu 中,您将在包管理器中找到它(搜索php-mysql)或执行

sudo apt-get install php-mysql

如有必要,安装后重新启动网络服务器,使用

sudo /etc/init.d/apache2 restart
于 2011-09-18T14:54:04.337 回答
0

你可以通过查看错误来找出你做错了什么

if ($qry !== false) {
    while($row = mysql_fetch_object($qry)) {
        echo $row->id;
     }
} else echo mysql_errno() . ': ' . mysql_error();

但请记住,如果您的查询根本不匹配数据库中的任何记录,则查询可能会返回一个空集。在你的情况下,什么时候atable是空的,当然什么都不能退还。

于 2011-08-14T20:16:52.257 回答
0

运行以下代码以查看您是否在 Apache 和 php 中提供了 mysql 支持:

<?php
if (function_exists('mysql_connect')) {
    echo "Good<br />\n";
} else {
    echo "Bad.<br />\n";
}
?>

如果没有,您将需要:

sudo apt-get install php5-mysql

然后重新启动 Apache以使代码正常工作

sudo service apache2 restart

来源:http ://bytes.com/topic/php/answers/869918-mysql_connect-function-isnt-working

于 2013-04-28T09:08:24.953 回答