0

我在 MY SQL 中有一个表,它可能在某个列中有一个条目为 1 或大于 1。基本上基于列中条目的当前值,我希望运行以下两种方法之一:

零件代号:

$db->prepare("SELECT vote_count FROM tbl_voter_count WHERE voter_phone_number  = :phone ");
$sql->bindParam(":phone", $phone );
try {

    $sql->execute();

} catch(PDOException $e) {

    echo $e->getMessage();

}

$data = $sql->fetchAll(PDO::FETCH_ASSOC);
if($data){
foreach ($data as $row) {
$count = $row['vote_count'];
 if($count == 1)
 {
   //Logic 1
 }

   //Logic 2

}

基于以上所述,有没有更好的方法来实现这一点,而代码纠缠和行要少得多。?

4

2 回答 2

1
try {
  $sth->execute();
  foreach($sql->fetchAll(PDO::FETCH_ASSOC) as $row) {
   if($row['vote_count'] == 1) {
     //Logic 1
   } else {
   //Logic 2
   }
  }
} catch ...

编辑 我建议在请求结束时使用 catch 。

于 2013-11-11T17:30:28.197 回答
1

你的方法很好。你也可以这样做:

$db->prepare("SELECT vote_count > 1 as multivote FROM tbl_voter_count WHERE voter_phone_number  = :phone ");
$sql->bindParam(":phone", $phone );
try {

    $sql->execute();

} catch(PDOException $e) {

    echo $e->getMessage();

}

while ($row = $sql->fetch(PDO::FETCH_ASSOC) {
    if ($row['multivote']) {
        //Logic 1
    } else {
        //Logic 2
    }
}
于 2013-11-11T17:32:49.977 回答