【发布时间】:2020-07-26 20:38:04
【问题描述】:
通常,我可以通过以下方式获取表中的每个课程名称:
<?php
// query users' table to retrieve courses' contents
$courses = $pdo->query("SELECT * FROM courses"); # question marks is used as a place holder
echo '<option value="">Select a course</option>';
foreach ($courses as $row)
{
echo '<option value=" '. $row["c_name"] .' ">'. $row["c_name"] .'</option>';
}
?>
现在我想通过使用位置占位符的 PDO 准备语句来做同样的事情,但它不起作用。以下是我尝试过的:
$stmt = $pdo->prepare("SELECT * FROM courses WHERE c_name = ?");
if ($stmt->execute(array($_GET['c_name'])))
{
while ($row = $stmt->fetch())
{
echo '<option value=" '. $row["cid"] .' ">'. $row["c_name"] .'</option>' .
'<option value=" '. $row["c_name"] .' " selected="selected">'. $row["c_name"] .'</option>' .
'<input type="hidden" name="cid" . value="' . $row["cid"] .'" id="cid"/>';
}
}
【问题讨论】:
-
这个
SELECT * FROM courses只是一个简单的选择,没有任何条件。所以我不确定为什么$stmt->execute([$cid]);