有人告诉我,mysql_
扩展名现在已在当前版本的PHP中弃用,并且会在某些时候删除。
我应该使用什么而不是这个以及如何使用?
对于我几乎所有的查询,我都使用它。
例如:
$result = mysql_query($query);
if (!$result) die ("Database access failed: " . mysql_error());
$rows = mysql_num_rows($result);
答案 0 :(得分:6)
根据PHP
手册,您应该使用以下任何一种方法:
但要清楚,这些都不仅仅是mysql_num_rows()
的替代品。您的代码最终必须完全重写,以使用MySQLi或PDO API代替mysql_*()
。
答案 1 :(得分: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 Improved。
可在此处找到更多信息:http://www.php.net/manual/en/book.mysqli.php
答案 2 :(得分: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重要事项:
答案 3 :(得分:0)
<强> mysql_num_rows 强>
自PHP 5.5.0起,此扩展程序已弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。另请参阅MySQL:选择API指南和相关的常见问题解答以获取更多信息。该功能的替代方案包括:
答案 4 :(得分:0)
与上述提到的mysql_num_rows function description一样,您可以使用Mysqli或PDO_MYSQL替代。
答案 5 :(得分:-1)
don't use mysql_* functions in new code.
它们不再被维护,而且是officially deprecated。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - 本文将帮助您确定哪个。
如果您选择PDO,则此处为good tutorial