我在 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
}
基于上述,有没有更好的方法来用更少的代码纠缠和行来实现这一点。?
try {
$sth->execute();
foreach($sql->fetchAll(PDO::FETCH_ASSOC) as $row) {
if($row['vote_count'] == 1) {
//Logic 1
} else {
//Logic 2
}
}
} catch ...
编辑我建议在请求结束时使用 catch。
你的方法很好。您还可以执行以下操作:
$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
}
}