2011-08-14 53 views
2

我最近在我的服務器上安裝了Ubuntu,取代了Windows。我的網站在Windows/XAMPP下運行良好,但與Ubuntu無關。我嘗試了一個簡單的db連接:Ubuntu/PHP/MySQL:mysql-functions不工作?

<?php 
    $con = mysql_connect("localhost", "root", "mypassword") or die ("connection error"); 
    mysql_select_db("db1", $con) or die ("db selection error"); 
    $qry = mysql_query("SELECT * FROM atable"); 
    while($row = mysql_fetch_object($qry)) { 
     echo $row->id; 
    } 
?> 

但是當我加載頁面時,什麼也沒有發生。 PHP的正常工作,

<?php echo "test"; ?> 

按預期工作...

我(測試目的)設置爲:

  • 的Ubuntu 11.04和LAMP
  • mysql的綁定-ADRESS在我.cnf設置爲0.0.0.0
  • mysql的root用戶主機設置爲%,權限授予。 PHP5的
  • 的extension_dir設置爲 「/usr/lib/perl5/auto/DBD/mysql/mysql.so」

我缺少什麼/做錯了嗎?

+2

不知道這是否是完整的代碼,但你有什麼期待?如果mysql連接/選擇數據庫,你的代碼不會輸出任何東西。 –

+0

由於Bernhard說你發佈的代碼片段不會輸出任何東西,即你連接到數據庫,但不發出任何選擇/更新等 – eon

+0

對不起,忘了其餘的,編輯 –

回答

0

你可以找出來,你正在通過查看錯誤

if ($qry !== false) { 
    while($row = mysql_fetch_object($qry)) { 
     echo $row->id; 
    } 
} else echo mysql_errno() . ': ' . mysql_error(); 

但要記住做錯了,該查詢可能會返回一個空集,如果在你的數據庫查詢根本不匹配任何記錄。在atable爲空的情況下,當然沒有任何東西可以返回。

+1

試過,但沒有任何反應......也試過:'echo「1」;的mysql_connect(...);回聲「2」;',結果只有'1'。我覺得這很奇怪,因爲'或死(..)'應該回應一些東西,但它只是靜靜地死去 –

2

您是否安裝了php-mysql包?如果不是請安裝it.In Ubuntu的,你會發現它在包管理器(搜索php-mysql)或做

sudo apt-get install php-mysql 

安裝必要時重新啓動Web服務器後,使用

sudo /etc/init.d/apache2 restart 
0

運行下面的代碼看看你是否已經有了可用的MySQL支持內Apache和PHP:

<?php 
if (function_exists('mysql_connect')) { 
    echo "Good<br />\n"; 
} else { 
    echo "Bad.<br />\n"; 
} 
?> 

如果沒有,您需要:

sudo apt-get install php5-mysql 

然後重新啓動Apache讓代碼工作

sudo service apache2 restart 

來源:http://bytes.com/topic/php/answers/869918-mysql_connect-function-isnt-working