我的功能看起來像那樣。
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();
}
對於每一個開關殼體$params
($stmt->bind_param($params);
)必須是不同的。
所以我想要做的是創造$params
內switch
$params='"i"'.$id;
然後使用它像這樣
$stmt->bind_param($params);
這可能嗎?
我知道這一點。但也許有可能擺脫我的想法額外的代碼片段? – 2012-02-20 15:13:11
那麼,它會反正需要額外的代碼來擺脫冗餘代碼 – Abhay 2012-02-20 16:27:14