需要测试sql查询是否成功

时间:2010-01-13 21:14:58

标签: php sql

我有这个查询,如果它返回成功,我想要另一个函数来处理,如果没有,不要处理该函数。

以下是运行查询的代码

global $DB;
$DB->query("UPDATE exp_members SET group_id = '$group_id' WHERE member_id = '$member_id'");

我想它就像......

if($DB) { 
    //success 
} else { 
    //failure 
}

11 个答案:

答案 0 :(得分:29)

这是您可以测试的最简单方法

$query = $DB->query("UPDATE exp_members SET group_id = '$group_id' WHERE member_id = '$member_id'");

if($query) // will return true if succefull else it will return false
{
// code here
}

答案 1 :(得分:8)

mysql_affected_rows

据我所知,通过说“成功”,您想知道是否有任何行已更新。您可以使用此功能进行检查。

如果您使用PDO - > http://www.php.net/manual/en/pdostatement.rowcount.php

答案 2 :(得分:2)

global $DB;
$status = $DB->query("UPDATE exp_members SET group_id = '$group_id' WHERE member_id = '$member_id'");

if($status == false)
{ 
    die("Didn't Update"); 
}

如果您在后端使用mysql_query$DB->query()用于查询数据库),它将为TRUE返回FALSEINSERTUPDATEDELETE(以及其他一些)命令,基于其状态。

答案 3 :(得分:2)

if ($DB->rowCount() > 0)
   {/* Update worked because query affected X amount of rows. */}
else
    {$error = $DB->errorInfo();}

答案 4 :(得分:2)

如果值为0则表示不成功,但如果为1则成功。

$this->db->affected_rows();

答案 5 :(得分:0)

if ($DB->query(...)) { success }
else { failure }

查询应该在失败时返回false(如果您使用的是mysql_query或$ mysqli->查询)。如果你想测试UPDATE查询是否真的做了什么(这与“成功”完全不同),那么使用mysql_affected_rows或$ mysqli-> affected_rows

答案 6 :(得分:0)

这证明了我在插入或更新时测试失败的最安全的机制:

<jboss-deployment-structure> 
  <sub-deployment name="campaigner-service.jar">
    <dependencies> 
      <module name="com.dr_dee_sw.campaigner" /> 
    </dependencies> 
  </sub-deployment>
</jboss-deployment-structure>

答案 7 :(得分:0)

如果您没有使用->格式,则可以执行此操作:

$a = "SQL command...";
if ($b = mysqli_query($con,$a)) {
  // results was successful
} else {
  // result was not successful
}

答案 8 :(得分:0)

检查:

lazy var fetchResultController: NSFetchedResultsController<Book> = {
        let fetchRequest: NSFetchRequest<Book> = Book.fetchRequest()
        fetchRequest.sortDescriptors = [NSSortDescriptor(key: #keyPath(Book.name), ascending: false)]

        let fetchResultController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.persistentContainer.managedContext, sectionNameKeyPath: #keyPath(Book.category.name), cacheName: nil)

        fetchResultController.delegate = self

        return fetchResultController
    }()

答案 9 :(得分:0)

您可以使用它来检查查询是否有任何结果($结果):

if (mysqli_num_rows($result) != 0)
 {
  //results found
 } else {
  // results not found
 }

答案 10 :(得分:0)

mysqli_affected_rows返回受影响的项目数。

enter image description here