使用php绑定sql select查询的结果

时间:2016-11-14 01:57:39

标签: php sql

在下面的代码中,“$ _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";
 }

1 个答案:

答案 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>";