2010-11-12 96 views
1

我想通过运行在我学校unix服务器上的php连接到mysql数据库。这就是我想:16PHP中缺少MySQL

$ php setupDatabase.php 
PHP Fatal error: Call to undefined function mysql_connect() in /users/cs/summers/Fall2010/webCentric/ass4/sessionTime/setupDatabase.php on line 16 

线是指这条线:

db_server = mysql_connect($db_hostname, $db_username, $db_password); 

我认为,这意味着MySQL的功能,其中不使用PHP安装。当我执行<?php phpinfo(); exit(); ?>和grep为MySQL,这是我所得到的:

Configure Command => './configure' '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' ... '--with-mysql=shared,/usr' '--with-mysqli=shared,/usr/bin/mysql_config' '--with-pdo-mysql=shared,/usr' ... 

我不知道,如果这证实了MySQL是没有安装。

问题:我是否缺少mysql?我需要用mysql重新安装php吗?

问题:我没有root权限访问服务器(显然)。我能否在没有root权限的情况下安装它?如果是的话可以有人指点我一个教程?

我只是看着我的php.ini文件更新这是包含在它关于MySQL的(我已删除的意见和mysqli的东西)。

[MySQL] 
mysql.allow_persistent = Off 
mysql.max_persistent = -1 
mysql.max_links = -1 
mysql.default_port = 
mysql.default_socket = 
mysql.default_host = 
mysql.default_user = 
mysql.default_password = 
mysql.connect_timeout = 60 
mysql.trace_mode = Off 

该文件不包含:extension=mysql.so这是什么是需要启用mysql?我没有修改php.ini的权限,我可以在某处创建另一个文件,或者我可以在代码中使用类似include语句的东西吗?

+0

您的php.ini是否包含“extension = php_mysql.so”? (例如,请参阅http://articles.techrepublic.com.com/5100-10878_11-5272345.html) – 2010-11-12 16:19:36

+0

我更新了我的答案。你一定在php.ini上有extension = php_mysql.so。另外,如果您在共享主机上运行,​​我强烈建议与托管服务提供商交谈,看看他们是否可以为您解决问题。 – Nacho 2010-11-12 16:39:08

回答

3

您的php.ini中已禁用mysql扩展。

编辑php.ini并取消(删除)

; extension=mysql.so 

在您不能编辑php.ini的情况下,你可以重写它this way

+0

我在哪里可以找到php.ini? – sixtyfootersdude 2010-11-12 16:18:32

+4

运行phpinfo()会告诉你在哪里可以找到php.ini。 – Nacho 2010-11-12 16:20:28

+0

如果您正在运行共享服务器并且无法对其进行编辑,则可以要求他们这样做。 – Nacho 2010-11-12 16:21:09

2

根据您的编译标志,它看起来像安装了mysqli。无论如何,我建议使用这些功能,因为它们是改进的扩展。

0

检查你的php.ini文件,看看是否启用了mysql扩展。它看起来好像没有看到你正在得到一个未定义的函数错误。

寻找这一行(在php.ini中),并删除分号,重新启动您的网络服务器,你应该与MySQL联系。

; extension = php_mysql.dll