2013-03-08 35 views
4

我被告知mysql_扩展现在在当前版本的PHP中被弃用,并且在某些时候会被删除。mysql_ deprecated

我应该用什么来代替这个以及如何使用?

对于几乎所有我使用它的查询。

例如:

$result = mysql_query($query); 

if (!$result) die ("Database access failed: " . mysql_error()); 

$rows = mysql_num_rows($result); 
+1

使用mysqli_ *功能 – 2013-03-08 12:20:53

+1

你应该使用[PDO](http://php.net/manual/fr /book.pdo.php) – soyuka 2013-03-08 12:21:15

+1

这不仅仅是'mysql_num_rows()'。它是'mysql _ *()'函数的_all,'mysql_connect(),mysql_query()等等'' – 2013-03-08 12:22:05

回答

5

按照PHP手册,你应该使用以下任一:

要尽管如此,这些都不是mysql_num_rows()的纯粹替代品。您的代码最终必须完全重写,以使用MySQLi或PDO API代替mysql_*()

1

就个人而言,我现在用的MySQL Improved extension

如果您选择以过程方式使用它,则可以以与您当前使用旧的MySQL扩展程序非常类似的方式使用它。

实施例(MySQL的):

$result = mysql_query($query); 

if (!$result) die ("Database access failed: " . mysql_error()); 

$rows = mysql_num_rows($result); 

实施例(MySQL的改进):

$result = mysqli_query($query); 

if (!$result) die ("Database access failed: " . mysqli_error()); 

$rows = mysqli_num_rows($result); 

然而,我使用MySQL在一个面向对象的方式改进。

更多信息可以在这里找到:http://www.php.net/manual/en/book.mysqli.php

+0

不比mysql_query() – 2013-03-08 12:34:58

+2

更好@YourCommonSense mysqli_query()不被弃用。这才是重点。 – 2013-03-08 12:40:05

+0

我需要安装一些东西才能使'mysqli_ *'工作吗? – Pars 2013-11-04 06:44:25

1

如果你了解数据库抽象库的想法,使用safemysql

$data = $db->getAll($query,$param1,$param2); 
$rows = count($data); 

如果使用原始API函数对你更熟悉,使用PDO

$stm = $pdo->prepare($query); 
$stm->execute(array($param1,$param2)); 
$data = $stm->fetchAll(); 
$rows = count($data); 

注2重要事项:

  • 请求的数据已存储在$ data变量中。
  • 动态查询部分(即插入变量)已通过占位符插入
+0

谢谢你的笔记,非常有用。 PDO现在是我的新宝贝。 – Brobina 2013-03-08 16:02:03

相关问题