mysql_ deprecated
有人告诉我,在当前版本的PHP中,
我应该用什么来代替这个,怎么用?
我几乎所有的疑问都使用它。
例如:
1 2 3 4 5 | $result = mysql_query($query); if (!$result) die ("Database access failed:" . mysql_error()); $rows = mysql_num_rows($result); |
根据
- mysqli_stmt_num_rows()。
- pDestatement::RowCount()。
不过,很明显,这两种方法都不能仅仅替代
如果您了解数据库抽象库的概念,请使用safemysql
1 2 |
如果您更熟悉使用原始API函数,请使用PDO
1 2 3 4 |
注2重要事项:
- 请求的数据已存储在$data变量中。
- 必须通过占位符插入每个动态查询部分(即插入的变量)。
就我个人而言,我现在使用MySQL改进的扩展。
如果您选择以程序化的方式使用它,那么它的使用方式与您当前使用旧的MySQL扩展的方式非常相似。
示例(mysql):
1 2 3 4 5 | $result = mysql_query($query); if (!$result) die ("Database access failed:" . mysql_error()); $rows = mysql_num_rows($result); |
示例(MySQL改进):
1 2 3 4 5 | $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函数描述中提到的,您可以使用mysqli或pdo_mysql作为替代。
通过
mysql_num_rows
This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:
mysqli_stmt_num_rows() PDOStatement::rowCount()
不要在新代码中使用mysql_*函数。
它们不再被维护,并被正式否决。看到红盒子了吗?学习准备好的语句,并使用pdo或mysqli-本文将帮助您决定哪一个。
如果你选择PDO,这里有一个很好的教程