注册 登录
编程论坛 PHP技术论坛

[求助]为何mysql_connect无法解析

sangogy 发布于 2006-02-26 12:08, 3229 次点击

偶是个新手,跟台湾人的教程刚开始学PHP,他写的程序里使用了mysql_connect,但在偶的APPSERV上却无法执行,报错如下:
Fatal error: Call to undefined function mysql_connect() in e:\AppServ\www\counter.php on line 12

在教材里说是需要MYSOL支持,但找了很久不清楚如何获得支持,请前辈们不吝赐教!

11 回复
#2
rainic2006-02-26 14:31

应该是php.ini的配置有问题吧
在php.ini中查找 extension=php_mysql.dll 字串,删除掉前面的 ; 号
extension=php_mysql.dll

#3
sangogy2006-02-26 20:05
不行啊
我在APPSERV下的PHP目录下找到php.ini-dist.bak和php.ini-recommended.bak这两个文件
用ULTRAEDIT打开,修改后保存,问题依旧;再用写字板打开,发现";"已经去掉了,刷新网页,依然打不开
#4
rainic2006-02-26 20:55
要改名成php.ini
然后放到c:\windows目录下
#5
sangogy2006-02-27 11:11
php.ini-dist.bak和php.ini-recommended.bak?
是哪个呢?
#6
rainic2006-02-27 17:52
php.ini-dist.bak
#7
sangogy2006-02-27 22:04
太麻烦你了,非常感谢
但还是不行啊
#8
rainic2006-02-27 22:37

呵,那我不知道了~~我发个文章给你看看吧


配置最新的PHP加MYSQL服务器

作者:REISTLIN 文章来源:蓝色理想 点击数:2240 更新时间:2004-2-13
相信大家通过 GOOGLE.COM 和经典的N多教程应该非常熟悉去架设PHP+MYSQL服务器.
本人最近无聊.所以去 WWW.SKYCN.NET 下载了最新的 MYSQL 5.0 以及 PHP 5.0
通过一个小时的研究和设置.实现了最新的 PHP 5.0 + MYSQL 5.0 + WIN2003.
个人认为还是有必要写个教程出来.因为很多方面和老版本的不尽相同.
说实话自己也是查阅了很多官方文档才解决了很多怪异问题.

=========================

相关软件均可以在 WWW.SKYCN.NET 下载.

MYSQL 5.0 FOR WINDOWS
PHP 5.0 FOR WINDOWS
PHPMYADMIN
WINDOWS SERVER 2003

=========================

首先安装 MYSQL .本来以为新版本的安装界面应该会花哨点.
但是仍然只看到老土的海豚.除了安装时间比 4.0 长.当然咯.因为 5.0 比 4.0 体积大很多.

推荐安装在独立的 NTFS 分区上.比如我服务器的 F盘.只放服务器软件.
路径为: F:\MYSQL\

然后进入 F:\MYSQL\BIN\ 鼠标双点 winmysqladmin.exe
首次运行会提示输入超级用户和密码.就输入 root 密码 root
注意啊.如果是对外服务器请设置超级复杂.比如 Wjwsfjn29szjwh~mysql
翻译过来就是: 我叫魏舒芬.今年29岁至今未婚. :D

到这里.MYSQL就安装完毕了.如果不明白请参看深空同学的相关文章.

=========================

下面安装 PHP 5.0 其实没什么安装不安装的.解压缩文件.推荐放到
路径为: F:\PHP\

到这里就应该进入关键步骤了.
首先复制 PHP 目录下的 Php.ini-dist 到 C:\Windows\ 并将文件名修改成为 Php.ini

COPY F:\PHP\Php.ini-dist C:\Windows
Ren Php.ini-dist Php.ini

如果是 WINDOWS 2000 就是: C:\WINNT\
如果是 WIN9X / 2003 就是: C:\Windows\

然后复制 PHP 目录下 DLLS 目录里的所有文件到 SYSTEM32 目录.

COPY F:\PHP\dlls\*.* C:\Windows\System32\

如果是 WINDOWS 2000 就是: C:\WINNT\System32\
如果是 WIN9X / 2003 就是: C:\Windows\System32\

继续.复制PHP目录下 php4ts.dll 文件到 System32 目录里.

COPY F:\PHP\php4ts.dll C:\Windows\System32\

=========================

到这里复制工作全部完成.下面修改 C:\Windows\Php.ini 文件.

请注意.5.0的版本修改与4.0并不完全相同.需要注意的如下.

查找 extension_dir 字串.修改为你 PHP 目录里 extensions 的路径.

; Directory in which the loadable extensions (modules) reside.
extension_dir = F:\PHP\extensions
我的是:extension_dir = F:\PHP\ext

然后与 PHP 4.0 不同的是.需要修改 Php.ini 文件里的如下内容:
查找 cgi.force_redirect 字串.默认值为1.将其修改为0.并取消前面的;号.

即:

; cgi.force_redirect is necessary to provide security running PHP as a CGI under
; most web servers. Left undefined, PHP turns this on by default. You can
; turn it off here AT YOUR OWN RISK
; **You CAN safely turn this off for IIS, in fact, you MUST.**
cgi.force_redirect = 0

切记如上修改的地方.否则PHP 5.0是无法运行的.会有如下提示.

Security Alert! The PHP CGI cannot be accessed directly.

接下来修改 Php.ini 文件关于 MYSQL 5.0 的设置.

查找 [MySQL] 字段内的内容.修改如下.

mysql.default_port = 3306
// 这里是MYSQL的端口.

mysql.default_host = localhost
// 这里是本地主机.

mysql.default_user = root
// 这里是用户

mysql.default_password = Wjwsfjn29szjwh~mysql
// 这里是密码

修改到这里就可以让 Php 与 MYSQL 关联了.
最后启动 PHP 对 MYSQL 模块支持.

查找 extension=php_mysql.dll 字串.删除掉前面的 ; 号

extension=php_mysql.dll

请注意.如果不启动 PHP 对 MYSQL 模块支持.将无法使 PHPMYADMIN 正常工作.将提示:

cannot load MySQL extension, please check PHP Configuration
无法装入 MySQL 扩展,请检查 PHP 的配置。

[此贴子已经被作者于2006-2-27 22:43:03编辑过]

#9
sangogy2006-02-28 12:07
再次感谢
#10
yizhongyz9832006-03-04 20:34

我的机器也不可以,现在改了一下还没有测试,应该是没有问题了。

我也是看了中原大学的php孙老师的视频教程,看到人家可以,我的却测试不成功。

幸好在这里能找到答案,太好了,等会重启一下,应该是没有问题的。

#11
yizhongyz9832006-03-04 21:59

还是有问题,而且好像问题更多了

Warning: mysql_connect() [function.mysql-connect]: Client does not support authentication protocol requested by server; consider upgrading MySQL client in d:\AppServ\www\count.php on line 12

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in d:\AppServ\www\count.php on line 18

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in d:\AppServ\www\count.php on line 21

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in d:\AppServ\www\count.php on line 21

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in d:\AppServ\www\count.php on line 24

源程序为

<?

//------[基本设定]-------
$mysql_server_name = "localhost";
$mysql_username = "**********";
$mysql_password = "*******";
$mysql_database = "******";
//-------


//建立连线---通过(服务器名称、用户姓名、用户密码)
$conn = mysql_connect($mysql_server_name, $mysql_username, $mysql_password);

//准备好你的sql语法
$sql = "INSERT INTO `count` ( `new` ) VALUES ('1')";

//准备你要处理的资料库
mysql_select_db($mysql_database,$conn);

//进行查询
$result = mysql_query($sql);

//结束并释放链路
mysql_close($conn);

?>


#12
yizhongyz9832006-03-12 20:43

出现了这样一个问题,当我要测试计数器的时候,ie出现提示:
Fatal error: Call to undefined function mysql_connect() in d:\AppServ\www\test.php on line 7
test.php的内容是这样的:
<?
$mysql_server_name = "localhost";
$mysql_username = "****";
$mysql_password = "****";
$mysql_database = "****";

$conn = mysql_connect( $mysql_server_name,$mysql_username,$mysql_password );
$sql ="INSERT INTO `count` ( `new` ) VALUES ('1')";
mysql_select_db($mysql_database,$conn);
$result = mysql_query($sql);
mysql_close($conn);
?>

我查了一下,修改了一下windows里面的php.ini文件,
查找 extension=php_mysql.dll 字串.删除掉前面的 ; 号
extension=php_mysql.dll
结果出现这样的问题:
Warning: mysql_connect() [function.mysql-connect]: Client does not support authentication protocol requested by server; consider upgrading MySQL client in d:\AppServ\www\test.php on line 7

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in d:\AppServ\www\test.php on line 9

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in d:\AppServ\www\test.php on line 10

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in d:\AppServ\www\test.php on line 10

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in d:\AppServ\www\test.php on line 11

我想知道是哪里出问题了。谢谢。

1