2017-04-12 27 views
-4

由於服務器軟件升級,我有一個過時的php/mysql腳本無法運行。PHP已棄用:mysql_connect():

這裏是從錯誤日誌中的某些行:

[03-Apr-2017 04:05:16 UTC] PHP Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead start.php on line 18 
[03-Apr-2017 04:05:16 UTC] PHP Deprecated: Function mysql_numrows() is deprecated in library.php on line 135 

這是行18日起

$connection=mysql_connect($sqlserver,$db_login,$db_pass) or die('Could not connect to the database server'); 
$db = mysql_select_db($db_name, $connection) or die ("Unable to select database."); 


$sql="SELECT IP,Date FROM users WHERE IP='$IP' ORDER BY Date DESC LIMIT 1"; 

,這是行135起

for($i=0;$i<mysql_numrows($result);$i++){ 
     for($j=0;$j<mysql_num_fields($result);$j++){ 
         $ranges[$i][mysql_field_name($result,$j)] = mysql_result($result,$i,mysql_field_name($result,$j)); 
        }//end inner loop 
       }//end outer loop 

我不是一個程序員,這可以通過查找替換來解決嗎?

如果更改不起作用,還需要進一步的信息?

謝謝!

+4

它不能用查找和替換來解決。你必須交換到不具有相同語法的mysqli_ *或PDO。 – Sakuto

+0

'mysql_numrows()'甚至不是核心函數;它缺少一個下劃線'mysql_num_rows()'。 –

+0

@Sakuto:我猜OP在說'查找和替換'時意味着這個。 – Jan

回答

-2

新的mysqli_connect有4個參數,前3個與mysql_connect - $ host,$ login,$ password相同,第4個是$ db。

這省略了需要包括

$db = mysqli_select_db($db_name, $connection); 

我建議建立一個功能

function ConnectToDB(){ 
    return mysqli_connect($host, $login, $pass, $db); 
} 

然後你可以用這個函數的調用替換所有mysql_connects的。

ConnectToDB(); 
+0

這絕不能解決這個OP的整個問題,它只會將錯誤移動到第一次嘗試查詢數據庫,因爲所有的數據庫訪問調用將基於不推薦的'mysql_' api – RiggsFolly

+0

a)這不是唯一必要的改變b)「我不是程序員,哪一部分可以用查找替換來解決?」你不明白嗎? – ccKep

+0

的問題已經在我回答 – ochhii