致命错误:未被捕获的错误:在第27行的C:\ cont_search.php中,对布尔型成员函数execute()的调用

时间:2018-06-27 20:34:13

标签: php web-services

如何从两个表中搜索并查询执行并绑定到表格json数组以通过

cont_search.php

        <?php

    include "connection.php";
    $keyword=$_GET["context"];
    //Checking if any error occured while connecting
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
        die();
    }

    $query =$conn->prepare("(SELECT isbn, title, authors, accession, publisher, pubyear, pages, keywords, subheadings, booknote, rak, hr, vr,            status, 'book' as type FROM books WHERE title LIKE '%".$keyword."%' OR authors LIKE '%".$keyword."%' OR publisher LIKE                      '%".$keyword."%' OR pubyear LIKE '%".$keyword."%' OR keywords LIKE '%".$keyword."%' OR subheadings LIKE '%".$keyword."%' OR               booknote LIKE '%".$keyword."%')  
           UNION ALL
           (SELECT t_acc, t_title, t_author, t_university, t_puby, t_keywords, t_rak, t_hr, t_vr, t_status, 'thesis' as type FROM thesis WHERE t_title LIKE '%".$keyword."%' OR t_author LIKE '%".$keyword."%' OR t_university LIKE '%".$keyword."%' OR t_puby LIKE '%".$keyword."%' OR t_keywords LIKE '%".$keyword."%')");

 echo "Error: " . $query . "<br>" . $conn->error;

    $query->execute();

    $query->bind_result($isbn, $title, $authors, $accession, $publisher, 
  $pubyear, $pages, $key, $sub, $bkn, $rak, $hr, $vr, $status, $tacc, 
                        $ttile, $tauthor, $tuni, $tpuby, $tkey, $trak, $thr, 
   $tvr, $tstatus);


    $books = array(); 
    $data =array();
    //traversing through all the result 
        while($query->fetch()){
        $temp = array();
        $temp['isbn'] = $isbn; 
        $temp['title'] = $title; 
        $temp['authors'] = $authors; 
        $temp['accession'] = $accession; 
        $temp['publisher'] = $publisher; 
        $temp['pubyear'] = $pubyear; 
        $temp['pages'] = $pages; 
        $temp['keywords'] = $key; 
        $temp['subheadings'] = $sub; 
        $temp['booknote'] = $bkn; 
        $temp['rak'] = $rak; 
        $temp['hr'] = $hr; 
        $temp['vr'] = $vr;
        $temp['status'] = $status;
        $temp['t_acc'] = $tacc;
        $temp['t_title'] = $ttile;
        $temp['t_author'] = $tauthor;
        $temp['t_university'] = $tuni;
        $temp['t_puby'] = $tpuby;
        $temp['t_keywords'] = $tkey;
        $temp['t_rak'] = $trak;
        $temp['t_hr'] = $thr;
        $temp['t_vr'] = $tvr;
        $temp['t_status'] = $tstatus;


        array_push($data, $temp);

        }
        $books['ss'] = true; //ss=send status
        $books['search'] = $data;
    //displaying the result in json format 
        header('Access-Control-Allow-Origin: *');
        header('Content-type:application/json;charset=utf-8');
        echo json_encode($books);

    ?>
  

http://localhost/cont_search.php?context=english

     

我在上面的查询中执行/运行并发生错误

     

错误:   所使用的SELECT语句具有不同数量的列

     

致命错误:未捕获错误:在C:\ cont_search.php中以布尔值调用成员函数execute()

1 个答案:

答案 0 :(得分:0)

您的第一个错误在sql查询中。

  

UNION中的每个SELECT语句必须具有相同数量的   列

第一个选择中的列多于第二个选择