【发布时间】:2012-02-20 14:46:04
【问题描述】:
我的函数看起来是这样的。
if (isset($_POST['type'])) {
switch ($_POST['type']) {
case "qsubject":
$sql = "SELECT id, name FROM chapters WHERE subject_id=?";
break;
case "qchapters":
$sql = "SELECT id, name FROM sections WHERE subject_id=? AND chapter_id=?";
break;
case "qsections":
$sql = "SELECT id, name FROM paragraphs WHERE subject_id=? AND chapter_id=? AND section_id=?";
break;
}
$stmt = $db->prepare($sql) or die($db->error());
$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows > 0) {
$stmt->bind_result($chp_id, $name);
echo '<option value="#"></option>';
while ($stmt->fetch())
echo '<option value="' . $chp_id . '">' . $name . '</option>';
}
else
echo 0;
$stmt->close();
}
对于每个 switch case $params ($stmt->bind_param($params);) 必须不同。
所以我想做的是在switch 内部创建$params
$params='"i"'.$id;
那就这样用吧
$stmt->bind_param($params);
这可能吗?
【问题讨论】:
标签: php mysql mysqli prepared-statement switch-statement