2016-08-20 78 views
0

所以我有一個PHP腳本的服務器。在頂部,我連接到數據庫PHP刪除數據庫連接

mysql_connect("localhost", "root", "mypassword") or die("Could not connect: " . mysql_error()); 
mysql_select_db("mydatabase"); 

我知道,這些功能已被棄用,但我將不得不改變,以解決這個問題是對未來的問題,太多的PHP文件。

我這樣做在文件的頂部,然後經過一些HTML代碼和更多的PHP代碼,再往下我嘗試從數據庫中獲取,像這樣一些信息:

$result = mysql_query("SELECT Id, Name FROM people"); 

while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
     printf("ID: %s Name: %s", $row[0], $row[1]); 
    } 
mysql_free_result($result); 

現在我不明白任何輸出。但是,如果我在嘗試從中提取此信息之前連接到數據庫,它確實工作正常。爲了澄清,如果我把連接代碼放在這個代碼上面。

感謝

+0

所以。當您嘗試運行代碼時會發生什麼?你有沒有嘗試檢查錯誤?數據庫連接是否仍然打開?函數中的代碼是什麼? – andrewsi

+0

沒有輸出。我有更進一步的閱讀,在php.ini文件發生一些變化後,我現在沒有默認的數據庫。我不關閉任何地方的連接,代碼不在函數內。 – Thomja

+0

不使用'mysql' – Tonza

回答

2

保存「連接」到一個變量,使一個鏈接變量,並使用它作爲您的查詢參數。

$link = mysql_connect("localhost", "root", "mypassword") 

然後,後來用它喜歡:

$result = mysql_query('SELECT * from XYZ',$link); 
if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
} 
+0

這並沒有解決,但提供了一個很好的線索。 無效查詢:訪問拒絕用戶'www-data'@'localhost'(使用密碼:否) 是什麼錯誤輸出。但是,這真的很奇怪,因爲我通過命令行連接到數據庫時使用相同的用戶名和密碼作爲數據庫,所以sudo mysql -hlocalhost -uroot -ppassword 但我覺得奇怪不工作(注意添加的空格): sudo mysql -h localhost -u root -p password 此外,錯誤表示用戶是「www-data」......它不是,用戶名是根。 – Thomja

+0

這可能會有所幫助: http://stackoverflow.com/questions/7671346/access-denied-for-user-www-datalocalhost-how-to-deal-with-that –

+0

我閱讀並編輯我的php.ini文件並更改了默認的用戶名和密碼。但是我不能設置默認數據庫,所以現在頁面只返回一個錯誤,表示沒有選擇數據庫。 – Thomja