2010-11-12 92 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