[mysql] mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in


From: http://www.ttlsa.com/php/deprecated-mysql-connect/

php 5個版本,5.2、5.3、5.4、5.5,怕跟不上時代,新的服務器直接上5.5,但是程序出現如下錯誤:Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in,看意思就很明了,說mysql_connect這個模塊將在未來棄用,請你使用mysqli或者PDO來替代。

解決方法1:

禁止php報錯

display_errors = On
改為
display_errors = Off

鑒於這個服務器都是給用戶用的,有時候他們需要報錯(…都是給朋友用的,^_^),不能這做,讓他們改程序吧,看方案2.

解決方法2:

常用的php語法連接mysql如下

<?php
$link = mysql_connect('localhost', 'user', 'password');
mysql_select_db('dbname', $link);
 
改成mysqi
<?php
$link = mysqli_connect('localhost', 'user', 'password', 'dbname');

常用mysql建表SQL如下

<?php
//  老的
mysql_query('CREATE TEMPORARY TABLE `table`', $link);
// 新的
mysqli_query($link, 'CREATE TEMPORARY TABLE `table`');

解決方法三:

在php程序代碼里面設置報警級別

<?php
error_reporting(E_ALL ^ E_DEPRECATED);

Deprecated的問題就這樣解決掉了,不過還是建議大家盡快取消mysql的用法,全部都走向mysqli或者mysqlnd等等。mysql確實是太不安全而且太老舊了。

 
=========================================
完整的測試例子:
<?php

	// 方法一: 老的方法
	function test1()
	{
		$con = mysql_connect("localhost", "root", "123456");
		if(!$con)
		{
			die('Could not connect: ' . mysql_error());
		}
		else
			echo "Open mysql db success<br/>";
		mysql_close($con);
	}
	test1();

	// 方法二: 新的方法
	echo "test2<br>";
	function test2()
	{
		$link = mysqli_connect("localhost", "root", "123456", "");
		if(! $link)
		{
			die('Could not connect: ' . mysql_error());
		}
		else
			echo "Open mysql db success<br/>";
		mysqli_close($link);
	}
	test2();

?>

運行結果:

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /Users/zcm/work/pocketmu/source/vn/vn0/web/mu/th/t1.php on line 6
Open mysql db success
test2
Open mysql db success

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM