Php 检查是否在PDO中执行了SQL查询
在mysql_查询中,我们可以通过执行以下操作来检查查询是否已执行:Php 检查是否在PDO中执行了SQL查询,php,pdo,Php,Pdo,在mysql_查询中,我们可以通过执行以下操作来检查查询是否已执行: $query = $yourdbconnection->fetch_array(mysql_query("SELECT * FROM tbl_name")); if ($query){ // query is working } else { // query is not working } 在PDO中,我正在做这样的事情: $query = $yourdbconnection->query("SELECT *
$query = $yourdbconnection->fetch_array(mysql_query("SELECT * FROM tbl_name"));
if ($query){ // query is working }
else { // query is not working }
在PDO中,我正在做这样的事情:
$query = $yourdbconnection->query("SELECT * FROM tbl_name");
$fetchquery = $query->fetchAll();
if ($fetchquery) { // query is working}
else { // query not working}
$dbh = new PDO('mysql:host=localhost;dbname=db', 'user', 'pass');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
<?php
$query = $dbh->query('SELECT COUNT(*) FROM table');
if ($query->fetchColumn() != 0) {
/* Query has result(s) */
$query = $dbh->query('SELECT * FROM table');
/* ... */
} else {
/* Query has no results */
}
?>
我的代码有效吗?if
语句到底在做什么?它做的事情和mysql\u query做的事情一样吗?如何检查查询是否返回0行
[编辑]
我已经找到了解决问题的办法
$stmt->fetch()
准备($sql);
$stmt->execute();
if($data=$stmt->fetch()){
做{
echo$data['model'].
;
}而($data=$stmt->fetch());
}否则{
回显“空查询”;}
?>然而,我仍在寻找更好的解决方案你的帖子中有两个问题 1) 检查查询是否在PDO中返回值的最佳方法是什么 检查返回值 2) 如何检查在PDO中是否执行了SQL查询 将PDO设置为异常模式,如中所述
顺便说一句,对于
“SELECT*FROM tbl_name”
查询,您可能希望使用fetchAll()
而不是fetch()
,来查看您的查询是否执行,我建议您按照常识将PDO设置为异常模式。您可以这样做:
$query = $yourdbconnection->query("SELECT * FROM tbl_name");
$fetchquery = $query->fetchAll();
if ($fetchquery) { // query is working}
else { // query not working}
$dbh = new PDO('mysql:host=localhost;dbname=db', 'user', 'pass');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
<?php
$query = $dbh->query('SELECT COUNT(*) FROM table');
if ($query->fetchColumn() != 0) {
/* Query has result(s) */
$query = $dbh->query('SELECT * FROM table');
/* ... */
} else {
/* Query has no results */
}
?>
关于检查查询是否在PDO中返回值的最佳方法,我建议只执行一个SELECT COUNT(*)FROM table
查询,如下所示:
$query = $yourdbconnection->query("SELECT * FROM tbl_name");
$fetchquery = $query->fetchAll();
if ($fetchquery) { // query is working}
else { // query not working}
$dbh = new PDO('mysql:host=localhost;dbname=db', 'user', 'pass');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
<?php
$query = $dbh->query('SELECT COUNT(*) FROM table');
if ($query->fetchColumn() != 0) {
/* Query has result(s) */
$query = $dbh->query('SELECT * FROM table');
/* ... */
} else {
/* Query has no results */
}
?>
如果您有任何其他问题,请告诉我。“我的代码可以执行任务吗?”您的代码可以执行任务吗?我不知道,请告诉我!这不是一种检查SELECT查询结果数量的可移植方法。事实上,我没有注意到这一点。我想我学到了一些东西。然后我建议从表中执行一个
selectcount(*)查询,如果计数>0,则执行您的常规查询。我会更新我的答案。