Php 如何在mysqli prepared语句中打印获取的值?

Php 如何在mysqli prepared语句中打印获取的值?,php,mysqli,prepared-statement,Php,Mysqli,Prepared Statement,我的html表单: <form action="" method="post" > <tr> <td><select name="bs_edu"> <option value="" selected="selected">Select Basic Education</option> <option value="BA">B.A</option> <option value="BARC

我的html表单:

<form action="" method="post" > 
<tr> 
<td><select name="bs_edu">
<option value="" selected="selected">Select Basic Education</option>   
<option value="BA">B.A</option>
<option value="BARCH">B.ARCH</option>
<option value="BCA">BCA</option>
<option value="BBA">BBA</option> 
</select>
<td><input type="text" name="desg"/> </td>
<td><input type="email" name="email"/></td>
</tr>
</form>

选择基础教育
文学学士
拱门
BCA
工商管理学士
我的问题是:

<?php
    $stmt = $con->prepare("SELECT * FROM user_tbl WHERE bs_edu = ? AND desg = ? AND exp = ? AND pr_sal = ? AND plc = ? AND email = ?  ");
    $stmt->bind_param('ssssss', $_POST['bs_edu'], $_POST['desg'], $_POST['exp'], $_POST['prsal'], $_POST['place'], $_POST['email']);
    $stmt->execute();
    $result = $stmt->get_result();
    if ($result->num_rows > "0")
    {
        while($row = $result->fetch_assoc());
        {
            echo 'first name: ' .$row['fname'];  
        }
    }
    $stmt->close(); 
?>


我知道这是错误的数据显示方式。阅读本手册n如果真的运气不好,请说明如何显示获取的数据。。有什么帮助吗。。谢谢

下面的分号使循环停止,它是语句结束字符

while($row = $result->fetch_assoc());
                                    ^ end of statement
将其移除。

while($row = $result->fetch_assoc())
因为它被认为是有效的语法,所以不会出现错误

此外,带引号的零被解释为字符串,因此需要删除它

if ($result->num_rows > 0)
旁注关于
get_result()

手册规定:

仅限MySQL本机驱动程序

仅适用于

从这个答案中得出的例子


补充说明

不能是
的孩子,因为我怀疑您可能有
标记隐藏在您未显示的代码中的某个地方

您也没有与POST数组匹配的表单元素

在打开PHP标记后立即将错误报告添加到文件顶部 例如

下面的分号使循环停止,是语句结束字符

while($row = $result->fetch_assoc());
                                    ^ end of statement
将其移除。

while($row = $result->fetch_assoc())
因为它被认为是有效的语法,所以不会出现错误

此外,带引号的零被解释为字符串,因此需要删除它

if ($result->num_rows > 0)
旁注关于
get_result()

手册规定:

仅限MySQL本机驱动程序

仅适用于

从这个答案中得出的例子


补充说明

不能是
的孩子,因为我怀疑您可能有
标记隐藏在您未显示的代码中的某个地方

您也没有与POST数组匹配的表单元素

在打开PHP标记后立即将错误报告添加到文件顶部 例如


为什么你认为这是错误的?因为我认为这不是正确的方法,我不会从中得到任何结果问题是;在while循环之后;表单中还缺少两个表单字段($_POST['exp']、$_POST['prsal'])@itzmukeshy7您正在将OP的“代码”从
if($result->num_rows>“0”)
修改为
if($result->num_rows){
,为什么?请不要这样做!您不应该修改“代码”。我拒绝了编辑。如果它通过了,我会回滚它。你为什么认为它错了?bcz我不认为这是正确的方法,因为我不会从这一次中得到任何结果。问题是;在while循环之后;两个表单字段($\u POST['exp'],$\u POST['prsal'])在表单中也丢失;@itzmukeshy7你正在修改OP的“代码”这里从
if($result->num_rows>“0”)
if($result->num_rows){
,为什么?请不要这样做!你不应该修改“code”。我拒绝了编辑。如果它通过,我将回滚到它。但我没有得到任何输出。我删除了半成品colon@StillLearning
get_result()
正如我在回答中所说的,我的回答只是一个MySQL本机驱动程序,您可能没有在您的服务器上安装它。这个回答是另一种选择(参见第二种方法)。@StillLearning您也看到了删除的引号
if($result->num_rows>0)
对吗?@StillLearning Ok…嗯,您的HTML表单没有POST数组的名称属性,因此我不知道您打算在哪里使用这些属性。请使用错误报告并检查添加到我的answer@StillLearning重新加载我的答案,因为我已经做了一些编辑。另请参见“编辑:其中有另一个稍微不同的我”方法。我还添加了检查错误的方法,因此您需要检查是否存在错误,如所述,可能缺少表单元素/名称属性,
不能是“子项”在你的问题中,这是我能做的最好的了。但是我没有得到任何输出。我删除了半成品colon@StillLearning
get_result()@StillLearning您也看到了删除的引号
if($result->num\u rows>0)
对吗?@StillLearning Ok…嗯,您的HTML表单没有POST数组的名称属性,因此我不知道您打算在哪里使用这些属性。请使用错误报告并检查添加到我的answer@StillLearning重新加载我的答案,因为我已经做了一些编辑。另请参见“编辑:其中有另一个稍微不同的我”方法。我还添加了检查错误的方法,因此您需要检查是否存在错误,如所述,可能缺少表单元素/名称属性,
不能是
的“子项”,并且在您的问题中未显示。这是我在这里能做的最好的事情。
$stmt = $con->prepare("SELECT * FROM user_tbl ... ");

$result = $stmt->execute(); 
$stmt->store_result();

if ($stmt->num_rows > 1) {

  while($row = $result->fetch_assoc()){ 

  echo 'First name: ' .$row['fname'];

  }

}else{

   echo "0 records found";
}