【问题标题】:Script dies without error after calling mysql_connect()调用 mysql_connect() 后脚本没有错误就死掉了
【发布时间】:2011-06-11 19:31:01
【问题描述】:

我正在尝试使用 PHP 连接到 mysql,但它根本不起作用。

<?php

$con = mysql_connect('localhost', 'xxxx', 'xxxx');

mysql_select_db("test_site", $con);

$query = mysql_query("SELECT * FROM test");

echo $query;

mysql_close($con);
?>

我的整个脚本在第一行之后就停止了($con = ...)。我尝试添加 echo "TEST";在那条线之后,它没有显示。当我尝试在该行之前打印文本时,它工作正常。即使我添加如下内容:

if (!$con)
{
  die('Could not connect: ' . mysql_error());
}

没有错误显示。我假设这意味着连接很好......那么为什么我的脚本会停止?当我通过终端做同样的事情时,我会从测试中得到 *,就像我需要的那样。不使用 PHP。

帮助? =]

谢谢

编辑:

nvm,找到了让它工作的方法。

【问题讨论】:

  • 你检查过错误日志吗?
  • 检查phpinfo()的输出...寻找error_log设置。
  • error_log:没有值。但是,日志错误已开启。
  • 然后检查apache错误日志...PHP默认使用它。
  • 您的 php 配置缺少 mysql 模块。您需要在 php.ini 文件中添加“extension=mysql.so”(并确保 mysql.so 可用。)您正在运行什么操作系统?

标签: php mysql database-connection


【解决方案1】:

您需要安装 php5 mysql 模块。这将安装模块并在 Ubuntu 上使用 PHP 进行设置。

sudo apt-get install php5-mysql

【讨论】:

  • 我刚刚阅读了其他 cmets,发现您是从源代码安装的。查看此页面以帮助您从包管理器进行安装。 help.ubuntu.com/community/ApacheMySQLPHP
  • 这样做并重新启动了 apache。 mysql_connect 仍未定义。
  • 对,因为你是从源代码编译的,没有 mysql 支持。如果您按照该 Ubuntu 社区帮助页面上的说明进行操作,将会容易得多。
  • 我通常使用基于 RPM 的发行版。 debian/ubuntu 是否有 mysql 支持作为单独的包?像php-mysql?
  • @datasage 是的。 php5-mysql 安装 mysql.so 模块并设置 PHP 使用它。
【解决方案2】:

mysql_query 返回的资源无法转换为字符串以供回显。

改用 var_dump($query)。

【讨论】:

  • 你怎么知道的?因为你的脚本是现在写的,所以什么都不会显示。
  • 您阅读了我剩下的问题吗?我说我尝试在第一行之前和之后打印文本,但它只在之前有效。
  • 检查 display_errors 的值和您的 error_reporting 级别。
  • 我发现了错误,它说 mysql_connect 未定义。这根本没有意义。
  • 那么mysql扩展没有启用。如何启用取决于您的环境以及 PHP 的安装方式。
【解决方案3】:

您的服务器上运行了 MySQL,对吗?只要您传递了正确的主机/用户/通行证,它就不会完全失败......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 2015-03-01
    • 2011-07-23
    • 1970-01-01
    • 2018-01-24
    • 2014-07-01
    相关资源
    最近更新 更多