【发布时间】:2014-08-09 19:12:08
【问题描述】:
我已经创建了一个函数,它接受一个搜索列、搜索词和一个 ID 号,并且正在尝试构建一个准备好的语句并获取结果,并以 json 格式返回。
这是我所拥有的:
function searchBooks($searchColumn, $searchTerm, $teacherid) {
$books = array();
$link = connect_db();
$sql = "SELECT * FROM book WHERE teacher_id = ? AND ? LIKE ?";
$searchTerm = "%{$searchTerm}%";
$stmt = $link->stmt_init();
$stmt->prepare($sql);
$stmt->bind_param('iss', $teacherid, $searchColumn, $searchTerm);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_array(MYSQLI_BOTH)) {
$book = new Book();
$book->id = $row['id'];
$book->title = $row['title'];
$book->author = $row['author'];
$book->ar_quiz = $row['ar_quiz'];
$book->ar_quiz_pts = $row['ar_quiz_pts'];
$book->book_level = $row['book_level'];
$book->type = $row['type'];
$book->teacher_id = $row['teacher_id'];
array_push($books, $book);
}
mysqli_stmt_close($stmt);
return json_encode($books);
}
我正在使用一个测试页面,它传递我知道应该返回结果的值(使用“the”作为通配符,“title”作为搜索列):
echo searchBooks('title', 'the', 1);
...但我根本没有得到任何结果...[] 测试页面上的输出。
假设connect_db() 检索到一个连接。假设我正在做我所有的错误检查和我的控制器级别的所有事情,并且以后可能会添加类似的东西。只是想马上得到结果。提前感谢您指出的任何内容。
【问题讨论】:
-
searchcolumn 不能是绑定变量。你不能绑定表/列名
标签: php mysql mysqli prepared-statement