Php mysqli prepare不在表中返回结果

Php mysqli prepare不在表中返回结果,php,mysqli,prepared-statement,Php,Mysqli,Prepared Statement,我正试图将准备好的语句返回的每一行以自定义格式作为单独的表行发布-不幸的是,我过去在准备好的语句方面的成功率很低,我希望将其写入当前的标准- 下面的代码不会在表上回显任何行 谢谢你的帮助 $link = mysqli_connect("host", "user", "password", "db"); if ($stmt = mysqli_prepare($link, "SELECT * FROM users WHERE currentemp=1")) { mysqli_stmt_execute

我正试图将准备好的语句返回的每一行以自定义格式作为单独的表行发布-不幸的是,我过去在准备好的语句方面的成功率很低,我希望将其写入当前的标准-

下面的代码不会在表上回显任何行

谢谢你的帮助

$link = mysqli_connect("host", "user", "password", "db");
if ($stmt = mysqli_prepare($link, "SELECT * FROM users WHERE currentemp=1")) {
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $result);
mysqli_stmt_fetch($stmt);
foreach ($result as $row) {
//print data
echo("<tr><td><input type='checkbox' name='emp". $row['UID'] ."'></td><td>". $row['Fname'] ." ". $row['Lname'] ."</td><td>". $row['hiredate'] ."</td><td>" .$row['certlevel'] ."</td><td>". $row['email'] ."</td><td>". $row['phonenumb'] ."</td></tr>");
}

} else {
echo(" <tr><td colspan=5>No employees found</td></tr>");
}
mysqli_stmt_close($stmt);
$link=mysqli_connect(“主机”、“用户”、“密码”、“数据库”);
如果($stmt=mysqli\u prepare($link,“SELECT*FROM users,其中currentemp=1”)){
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt,$result);
mysqli_stmt_fetch($stmt);
foreach($结果为$行){
//打印数据
echo(“$row['Fname'..”.$row['Lname'..”.$row['hiredate'..”.$row['certlevel'..”.$row['email'..”.$row['phonenumb'.]);
}
}否则{
echo(“未找到员工”);
}
mysqli_stmt_close($stmt);
请注意,根据,
mysqli\u stmt\u bind\u result()
“将结果集中的列绑定到变量。”

另外
mysqli\u fetch()
只返回一个结果行。您需要使用while循环遍历结果集

$link = mysqli_connect("localhost", "root", "Ddsmp094", "dmt"); 

if ($stmt = mysqli_prepare($link, "SELECT UID, Fname, Lname, hiredate, certlevel, email, phonenumb FROM users WHERE currentemp=1")) {
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $UID, $Fname, $Lname, $hiredate, $certlevel, $email, $phonenumb);
while(mysqli_stmt_fetch($stmt)) {
    //print data
    echo("<tr><td><input type='checkbox' name='emp". $UID ."'></td><td>". $Fname ." ". $Lname ."</td><td>". $hiredate ."</td><td>" .$certlevel ."</td><td>". $email ."</td><td>". $phonenumb ."</td></tr>");
}
} else {
echo(" <tr><td colspan=5>No employees found</td></tr>");
}
mysqli_stmt_close($stmt);
$link=mysqli_connect(“localhost”、“root”、“Ddsmp094”、“dmt”);
如果($stmt=mysqli\u prepare($link,“从当前EMP=1的用户处选择UID、Fname、Lname、hiredate、certlevel、email、phonenumb”)){
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt、$UID、$Fname、$Lname、$hiredate、$certlevel、$email、$phonenumb);
while(mysqli_stmt_fetch($stmt)){
//打印数据
echo(“$Fname.”“$Lname.”“$hiredate.”“$certlevel.”“$email.”“$phonenumb.”);
}
}否则{
echo(“未找到员工”);
}
mysqli_stmt_close($stmt);

使用mysqli\u stmt\u close($stmt);在for循环之后。可能对你有用。这不起作用-但是代码修复为在正确的位置显示接近我看不到任何明显的错误。您的
$link
句柄实例化是否正确?应该使用
mysqli\u connect()
或通过创建有效的
mysqli
对象来创建它。很好。您可以使用redbean,而不是使用mysqli。太棒了。您可以查看它并检查
mysqli\u stmt\u execute()
的返回值,它可能导致了失败。我应该补充一点,使用这些东西要容易得多。