Php MySQL SELECT查询作为一个准备好的语句,不会从数据库循环出任何数据

Php MySQL SELECT查询作为一个准备好的语句,不会从数据库循环出任何数据,php,mysql,mysqli,Php,Mysql,Mysqli,一整天都在这里打我的头。我第一次尝试在代码中阻止SQL注入,所以我使用了一个准备好的语句,当我循环结果时,我的输出是空的,但是因为它是一个表,所有的单元格都在那里,没有数据。 我的代码: include_once(“../includes/connect.php”) $query=“从'boards'中选择*,其中'team\u id`=?按名称订购ASC”; $stmt=$con->prepare($query); $stmt->bind_参数(“s”,$board); $stmt->exec

一整天都在这里打我的头。我第一次尝试在代码中阻止SQL注入,所以我使用了一个准备好的语句,当我循环结果时,我的输出是空的,但是因为它是一个表,所有的单元格都在那里,没有数据。 我的代码: include_once(“../includes/connect.php”)

$query=“从'boards'中选择*,其中'team\u id`=?按名称订购ASC”;
$stmt=$con->prepare($query);
$stmt->bind_参数(“s”,$board);
$stmt->execute();
回声“
名称
输入/输出
注
";
while($row=mysqli\u stmt\u fetch($stmt))
{
回声“;
回显“$row['name']”;
回显“$row['inout']”;
回显“$行['note']”;
回声“;
}
回声“;
//用于故障排除
变量转储($stmt)
下面是它的样子:

你知道为什么数据没有填写吗?非常感谢您的帮助!
谢谢

您需要在调用
mysqli\u stmt\u fetch
之前绑定所有列,如此处手册所述:

mysqli\u stmt\u bind\u结果($stmt,$name,$inout,$note);
while(mysqli_stmt_fetch($stmt))
{
回声“;
回显“$name.”;
回显“$inout.”;
回音“$note.”;
回声“;
}

您需要指定要绑定的内容,即,
s
感谢您的回复vinodadhikary:当我尝试您的建议时,我得到了“PHP警告:mysqli_stmt_bind_result():绑定变量的数量与准备语句中的字段数量不匹配”@user2655005,您需要绑定查询将返回的所有列。我刚刚根据打印的值向您展示了这些列。明白了,您是正确的,由于*,我需要返回更多的表值。非常感谢。
$query = "SELECT * FROM `boards` WHERE `team_id` = ? ORDER BY name ASC";
$stmt = $con->prepare($query);
$stmt->bind_param("s", $board);
$stmt->execute();



echo "<table border='1' class='table table-bordered'>

<tr>
<th>Name</th>
<th>In/Out</th>
<th>Note</th>
</tr>";

while ($row = mysqli_stmt_fetch($stmt))

{
echo "<tr>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['inout'] . "</td>";
echo "<td>" . $row['note'] . "</td>";
echo "</tr>";
}
echo "</table>";
 //for troubleshooting
var_dump($stmt)
mysqli_stmt_bind_result($stmt, $name, $inout, $note);
while (mysqli_stmt_fetch($stmt))
{
  echo "<tr>";
  echo "<td>" . $name . "</td>";
  echo "<td>" . $inout . "</td>";
  echo "<td>" . $note . "</td>";
  echo "</tr>";
}