[mysql] mysql_connect(): The mysql extension is deprecated and will be removed in the future: use my

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

php 5个版本,5.二、5.三、5.四、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来替代。mysql

解决方法1:

禁止php报错web

display_errors = On
改成
display_errors = Off

鉴于这个服务器都是给用户用的,有时候他们须要报错(…都是给朋友用的,^_^),不能这作,让他们改程序吧,看方案2.sql

解决方法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确实是太不安全并且太老旧了。code

 
=========================================
完整的测试例子:
<?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();

?>

运行结果:blog

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
相关文章
相关标签/搜索