当前位置: 首页 > 面试题库 >

使用PDO替代mysql_num_rows

鲜于子琪
2023-03-14
问题内容

现在,我有一个PHP文件,该文件执行MYSQL查询,然后计算像这样的行:

$count=mysql_num_rows($result);


if ($count == 1) {
    $message = array('status' => 'ok');
} else {
    $message = array('status' => 'error');
}

这可以正常工作,但是我试图将所有PHP文件更改为使用PDO。那么如何用PDO做到这一点呢?


问题答案:
$res = $DB->query('SELECT COUNT(*) FROM table');
$num_rows = $res->fetchColumn();

要么

$res = $DB->prepare('SELECT COUNT(*) FROM table');
$res->execute();
$num_rows = $res->fetchColumn();

您也可以使用它来询问数据是否存在或被选择:

$res = $DB->query('SELECT COUNT(*) FROM table');
$data_exists = ($res->fetchColumn() > 0) ? true : false;

或使用您的变量:

$res = $DB->query('SELECT COUNT(*) FROM table');
$message = ($res->fetchColumn() > 0) ? array('status' => 'ok') : array('status' => 'error');


 类似资料:
  • 问题内容: 在php.net上阅读有关 MySQL函数的信息时 。我遇到了这个消息 警告此扩展自PHP5.5.0起不推荐使用,以后将被删除。相反,应使用MySQLi或PDO_MySQL扩展。另请参见MySQL:选择API指南和相关的FAQ,以获取更多信息。此功能的替代方法包括: mysqli_connect() PDO :: __ construct() 我已经了解了PDO。如何使用MySQL或M

  • null 我读过PDO的书。如何使用MySQL或MSSQL将代码更新为PDO?

  • 问题内容: 这是我到目前为止阅读的内容: 由于MySQL的本机准备绕过了查询缓存,因此PDO的准备仿真在性能上更好。 MySQL的本机准备更好地提高了安全性(防止SQL注入)。 MySQL的本机准备更好地用于错误报告。 我不知道这些陈述的真实性。在选择MySQL接口时,我最大的担心是防止SQL注入。第二个问题是性能。 我的应用程序当前使用过程MySQLi(没有准备好的语句),并且大量利用了查询缓存

  • 这是我到目前为止读到的关于的内容: PDO的prepare仿真性能更好,因为MySQL的本机prepare绕过查询缓存。 MySQL的本机prepare在安全性方面更好(防止SQL注入)。 MySQL的本机prepare更适合错误报告。 我不知道这些说法有多真实了。我在选择MySQL接口时最关心的是防止SQL注入。第二个关注点是业绩。 我的应用程序目前使用过程式MySQLi(没有准备好的语句),并

  • 问题内容: 这个问题已经在这里有了答案 : 为什么我不应该在PHP中使用mysql_ *函数? (15个答案) 6年前关闭。 当我尝试从PHP连接到MySQL服务器时,出现以下错误: 不推荐使用:不推荐使用mysql扩展,以后将删除:在第123行的/path/to/filename.php中使用mysqli或PDO代替 引用行上的代码是: 我确信这些论点是正确的,并且这种确切的代码已经工作了多年没

  • 问题内容: 我知道的指示: JPA持久性机制读取“ persistence.xml”文件,查找名为“ persistence-unit- name”的持久性单元,并基于该持久性单元构造EntityManagerFactory。 我的问题是,如何强制JPA 使用不同于“ persistence.xml”的文件 ?例如“ persistence-test.xml”。 问题答案: 尽管单个JPA提供程序