php - 为什么我的 PHP 页面没有正确查询数据库?

标签 php mysql wampserver

我正在尝试设置一个脚本来查询数据库以填充页面。这是我第一次尝试使用 PHP 进行数据库查询,如果问题真的很愚蠢,请原谅我。

我遇到的问题是页面似乎没有连接到数据库,因为前 2 个调试语句在浏览器中呈现,但之后没有。但是,当我使用 php.exe 在命令行上运行它时,它会正常运行并显示查询中的所有必需数据。

我在 Windows 7 上运行 wampserver 2.2,但它没有在任何浏览器中显示(在 Chrome、Firefox 和 IE9 中测试过。

我当前的代码如下。我也试过将连接移到头部,但这会阻止渲染任何东西,甚至 debug1。 die 声明在任何情况下都不会呈现。

<html>

<body>   
debug1<br /> 

<?php
echo "debug2<br />";
$con = mysql_connect("hostname.of.database","username","password") die('Could not connect: ' . mysql_error());
echo "debug3<br />";

mysql_select_db("dbname",$con);

$result = mysql_query("SELECT * FROM Mail");

while ($row = mysql_fetch_array($result))
  {
  echo $row['Sender'];
  echo "<br />";
  echo $row['Subject'];
  echo "<br />";
  echo $row['Message'];
  echo "<br />";
  echo "<br />";
  }

echo "debug4<br />";

mysql_close($con);
?>
</body>
</html>

编辑

die 语句移动到与连接相同的行后,我在页面中呈现以下内容:

Fatal error: Call to undefined function mysql_connect() in C:\wamp\www\test.php on line 10

编辑

我已将 extension=php_mysql.dll 添加到我的 php.ini 文件并重新启动服务器。我现在得到以下页面:

error messages

编辑

问题解决了。我的最后一个问题是我忘记用实际主机名替换 hostname.of.database

对于以后看到这里的人,解决方法如下:

  1. 在检索结果之前不要关闭连接
  2. 确保通过将 extension=php_mysql.dll 添加到 php.ini 文件来启用 php_mysql 扩展
  3. 重启服务器,清除浏览器缓存,然后重试。

最佳答案

因为您在获取结果之前关闭了连接:

// Don't do this!!!
//mysql_close($con);

while ($row = mysql_fetch_array($result))
  {
  echo $row['Sender'];
  echo "<br />";
  echo $row['Subject'];
  echo "<br />";
  echo $row['Message'];
  echo "<br />";
  echo "<br />";
  }

除非您在打算创建另一个连接时特别需要释放一些内存或破坏连接,否则通常没有必要显式调用 mysql_close()。它会在脚本执行完成时被调用。

更新:

发布您的错误消息后,您的 WAMP 堆栈似乎未启用 MySQL 扩展。命令行使用的 php.ini 文件可能与 Web 服务器使用的不同。通过调用 phpinfo() 找到正确的 php.ini 并启用 MySQL 扩展。

关于php - 为什么我的 PHP 页面没有正确查询数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8505763/

相关文章:

mysql - JDBC 返回的 Clojure 映射在检查后变为 null

Mysql 报告 have_openssl 已禁用

php - 脚本 php 而不是 ajax 中的 url

php - 如何使用outlookrestapi访问outlook地址簿

mysql - sql如何使用不同列的多个案例

mysql - MySQL查询缓存文件保存在哪里?

php - 哪个比较好? iis 上的 php 或 Windows Server 2003(VDS) 上的 WAMP 服务器上的 php

php - WAMP/MySQL 错误语言不正确

java - 计算平均值的简单数学公式

php - 将数据库中的纯密码转换为 Laravel 加密密码