【发布时间】:2023-03-22 14:47:01
【问题描述】:
我有一个 php switch 语句,由于某种原因,php switch 只在默认块中执行默认代码,而不是在 case 块中,我首先检查我的变量是否已设置,然后使用 switch 从我的数据库中选择数据这是代码
$sel = 1;
$sql = "(select * from insurance_companies WHERE id='$eop' LIMIT $sel)";
foreach ($pdo->query($sql) as $row){
$cID = $row['id'];
$cname = $row['name'];
}
if (isset($cname)) {
switch ($cname) {
case 'CASH':
$query= "SELECT test FROM cash_procedures WHERE test LIKE '%$did%'";
$result= $con->query($query);
break;
default:
$query= "SELECT test FROM procedures WHERE test LIKE '%$did%'";
$result= $con->query($query);
}
}
如果我的 $cname 变量匹配它,我想执行案例代码,但它会从默认代码块中的表中返回结果。我在这里查看了不同的帖子PHP switch not working as expected,这里是PHP switch "||" not working properly,这里是PHP switch case default
但他们没有解决我的问题
【问题讨论】:
-
不,切换前
echo $cname;。或者var_dump($cname); -
我得到了这个字符串(4)“CASH”,但它没有从数据库中回显任何东西
-
和 echo 我得到了现金,这意味着是的,它确实应该可以工作,但由于某种原因它不是
-
$cname 只会是数据库的最后一行所具有的任何内容。在 foreach 循环之后,switch 语句之前,$cname 的值是多少?
-
在foreach循环之前$cname不存在
标签: php