在下面的代码中,“$ _POST ['search']”由用户输入到表单中。如果我的数据库中的有效主键与其搜索匹配,则将显示该表中的一行。我需要能够访问我的程序中的另一个实际主键。由于某种原因,下面的代码不会在我的$ col变量中存储任何内容。
$stmt2 = mysqli_prepare($link, "SELECT * from classes WHERE course_id LIKE ?");
mysqli_stmt_bind_param($stmt2,'s', $_POST['search']);
mysqli_execute($stmt2);
mysqli_stmt_bind_result($stmt2, $col1, $col2, $col3, $col4, $col5, $col6);
mysqli_stmt_fetch($stmt2);
echo "<h1>This should be primary key: " . $col1 . "</h1>";
编辑:上面的代码现在是正确的,感谢大卫,但解决方案直接导致下一行中的错误。 这些是错误消息:
警告:mysqli_fetch_field()期望参数1为mysqli_result,布尔值在
中给出警告:mysqli_fetch_array()要求参数1为mysqli_result,布尔值在
中给出$result = mysqli_stmt_get_result($stmt2);
echo "<br><br><table>";
while($row = mysqli_fetch_field($result)){
echo "<th>\n";
echo $row->name . "<br>";
echo "</th>\n";
}
while($row = mysqli_fetch_array($result, MYSQLI_NUM)){
echo "<tr>";
foreach($row as $value){
echo "<td>";
echo $value . "<br>";
echo "</td>\n";
}
答案 0 :(得分:1)
您已将变量绑定到结果,但尚未从结果中获取记录。看看the documentation examples。更像是这样:
mysqli_stmt_bind_result($stmt2, $col1, $col2, $col3, $col4, $col5, $col6);
while (mysqli_stmt_fetch($stmt2)) {
echo "<h1>This should be primary key: " . $col1 . "</h1>";
}
即使您只想要结果中的第一条记录,您仍然需要获取该记录:
mysqli_stmt_bind_result($stmt2, $col1, $col2, $col3, $col4, $col5, $col6);
mysqli_stmt_fetch($stmt2);
echo "<h1>This should be primary key: " . $col1 . "</h1>";