有人告诉我,该mysql_
扩展现在在当前版本的 PHP 中已被弃用,并将在某个时候被删除。
我应该使用什么来代替这个以及如何使用?
对于我几乎所有的查询,我都使用它。
例如:
$result = mysql_query($query);
if (!$result) die ("Database access failed: " . mysql_error());
$rows = mysql_num_rows($result);
根据PHP
手册,您应该使用以下任何一种:
不过需要明确的是,这些都不能仅仅替代mysql_num_rows()
. 您的代码最终必须完全重写以使用 MySQLi 或 PDO API 代替mysql_*()
.
如果您了解数据库抽象库的思想,请使用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个重要的事情:
就个人而言,我现在使用MySQL 改进扩展。
如果您选择以程序方式使用它,则可以以与您当前使用旧 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
mysql_num_rows
此扩展自 PHP 5.5.0 起已弃用,并将在未来删除。相反,应该使用 MySQLi 或 PDO_MySQL 扩展。另请参阅 MySQL:选择 API 指南和相关的常见问题解答以获取更多信息。此功能的替代方案包括:
正如在官方mysql_num_rows 函数描述中提到的那样,您可以使用Mysqli或PDO_MYSQL作为替代方案。