【发布时间】:2014-09-05 02:13:21
【问题描述】:
背景知识:我对编程等方面还很陌生,过去几个月我一直在尝试在我的笔记本电脑上设置一个开发环境,这样我就可以练习一些基本的东西——PHP, Javascript、MySQL,在不久的将来可能还有 Python ——在过去的几个月里,我断断续续地尝试建立这个环境,结果好坏参半。我安装了 Apache 2.2、PHP 5.4.30 和 MySQL 5.6,并且在过去的几个晚上一直在修补它,试图自己弄清楚为什么有些东西不起作用。
现在我的问题是这样的:
我正在尝试在我的 localhost 上整理一些基本页面,这些页面将使用 HTML 和 PHP 连接到 MySQL,以通过 HTML 表单页面将内容输入数据库。显然,HTML 工作正常,但 PHP 似乎不想与 MySQL 一起玩。我不断收到这样的错误消息:
Fatal error: Call to undefined function mysql_connect() in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\MtG_DB_files\browse.php on line 24.
我正在编写的脚本中的相关行如下:
$host="localhost";
$user="XXXXX";
$password="YYYYY";
$dbname="mtg";
/*$cxn=mysql_connect($host,$user,$password,$dbname)or die("Not connecting!");*/
$cxn=mysql_connect("localhost","XXXXX","YYYYY","mtg")or die("Failed to connect to MySQL");
mysql_select_db($cxn,"cardscatalog")or die("Failed to connect to Cards Catalog");
一半的人认为我的问题是语法,而另一个人认为问题是某种安装错误。当我最初在研究生院学习并使用学校的服务器及其安装的所有东西时,这一切都很好,所以我过去能够做到,我只需要弄清楚我在个人笔记本电脑上安装的错误如何。我知道这是一个常见问题,我在 Internet 上进行了搜索,试图找到解决方案。
到目前为止我已经尝试过:
- 检查以确保我在 php.ini 中的 dll 文件存在且未注释
- 确保从正确的位置读取 php.ini 文件
- 更新我的 PHP、Apache 和 MySQL 版本(目前都是我之前指出的版本)并仔细检查它们是否是正确的版本
- 确保正确的 dll 文件位于正确的位置(php_mysql.dll 和 php_mysqli.dll 位于 C:\php\ext)
- 每当我进行更改时,我都会着迷地重新启动 Apache 和 MySQL
- 在另一个网站上阅读了有关 access.log 文件的信息后,我确保 Apache 具有对 access.log 文件的读/写访问权限。
- 出于绝望,我记得在我的研究生项目中,有一两次可以在 IE 中运行,但在 Chrome 中不起作用,反之亦然,因此我尝试使用这两种浏览器来查看我正在创建的页面。没有骰子。
我还能做什么或尝试什么?我必须从错误的角度来处理这个问题。我应该下载某种更新或未包含的文件吗?请让我知道我应该包含的任何规格或帮助解决此问题所需的任何其他信息;如您所见,我对此很陌生,真的不知道自己在做什么。在相关说明中,如果您愿意回应,请具体且相当白痴……当我说我是菜鸟并且我不会真正说行话时,我不是在开玩笑。;-)谢谢你的时间!
EDIT--7/15/14 00:13am 添加指向我的 php.ini 文件的链接以进行澄清。
EDIT--7/15/14 23:37pm 我想知道我的这部分 phpinfo 是否提供了任何有用的信息:
Path C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\Sony\VAIO Startup Setting Tool;C:\Users\XXXXXX\AppData\Local\Smartbar\Application\;C:\Users\Marisa\AppData\Local\Smartbar\Application\;C:\Program Files\jEdit;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files (x86)\MySQL\MySQL Utilities 1.4.3\;C:\Program Files (x86)\MySQL\MySQL Utilities 1.4.3\Doctrine extensions for PHP\
PATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
编辑--7/16/14 10:33 好吧,我昨晚尝试重新安装 PHP 和 MySQL,但什么也没做——我遇到的错误没有明显的变化。我认为可能影响问题的是我的一些扩展可能来自我尝试安装的旧版本的 PHP 和 MySQL,所以我更新了 php_mysqli.dll、php_mysql.dll 和 php_mbstring.dll,并将它们放入C:\php\ext 和 C:\Windows (通过使用这两个位置来覆盖我的基地),但我发现在我认为可能存在的任何地方似乎都没有 libmysql.dll 文件!我做了一些谷歌搜索,看起来人们建议不要下载单独的 libmysql.dll 文件......有什么好的方法可以解决这个问题?
【问题讨论】:
-
听起来您已验证 apache 正在运行,但 PHP 呢?尝试回显,它会告诉您 PHP 是否正常工作。您是否安装了 phpmyadmin 或任何其他可用于管理 MySQL 的客户端?
-
检查以确保没有“;”在位于 php 文件夹中的 php.ini 中的“extension=php_mysql.dll”之前。我能够通过将其注释掉来重新创建错误。更改时必须重新启动服务器。
-
@craniumonempty,我确保它没有被注释掉——不走运。
-
@EternalHour 当我运行 phpinfo 时,我为它编写了一个快速的 echo 行来测试 php... MySQL 或 MySQLi。它确实显示了 MySQLnd...这是一个有用的线索吗?
-
mysqlnd 是本机驱动程序。你需要另一个扩展.. PDO 安装了吗?也许他们知道 mysql 扩展已被弃用并且没有安装它。然后你又没有安装 mbstring。也许您需要重新安装并确保包含扩展。
标签: php mysql apache mysql-connect