致命错误:未捕获错误:在第 27 行的 C:\cont_search.php 中调用布尔值上的成员函数 execute



如何从两个表中搜索并查询执行并绑定以形成要传递的 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((

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

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

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

最新更新