使用mysqli预处理语句在所有记录检索中获取错误

时间:2014-02-13 07:51:36

标签: php mysqli

在我的搜索记录的代码中,我在while块中收到错误,它没有检索记录。我没有使用bind_result,因为要检索的列数是45。 请帮助我,我在这里错了。

<?php 
/* ___Search & display record with MySQLi Prepared Statements ___*/

if(isset($_GET['search'])) {

$cname=$_GET['cname'];
$cname=preg_replace( '/\s+/','',$cname);
if($cname==""){
    unset($cname);
    $error="Plese enter the company name";
}
else {  
        require_once '../includes/mysqli_dbconnect.php';
        $cname = '%'.$cname.'%';
        $query1 = "SELECT * FROM company WHERE cname LIKE ? ORDER BY cname DESC";
        $stmt=$dbLink->prepare($query1);
        if($stmt===false){
            trigger_error('Query Failed'. $query1 . 'Error: ' . $dbLink->error, E_USER_ERROR);
        }
        $stmt->bind_param('s',$cname);
        $stmt->execute();
        $stmt->store_result();
        if($stmt->num_rows > 0 ){
            $rs=$stmt->get_result();
            while($row=$rs->fetch()){
                                  //here number of columns to show are 45.
                echo 'ID: '. $row['id']. '<br/>';
                echo 'Company: '. $row['cname']. '<br/>';
            }
        }else{
                echo 'No Record Found';
            } 
        $stmt->close(); 
        $dbLink->close();
      }
 }
 ?> 

1 个答案:

答案 0 :(得分:0)

在你进入while循环之前,我建议你检查一下是否有任何数据。尝试使用第一个输出从查询中获得的任何结果;

的var_dump($ RS-&GT; fetch_all());