如何从两个表中搜索并查询执行并绑定到表格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()
答案 0 :(得分:0)
您的第一个错误在sql查询中。
UNION中的每个SELECT语句必须具有相同数量的 列
第一个选择中的列多于第二个选择