gpt4 book ai didi

php pdo 查询不起作用

转载 作者:行者123 更新时间:2023-11-29 23:36:21 24 4
gpt4 key购买 nike

我一直在尝试使用prepare()、bindParam() 和execute() 函数来实现PDO,以允许根据用户输入的数据构造查询。

我想显示书籍列表,然后允许用户过滤列表,然后查看新列表和完整列表。

当我在表单中输入条件进行搜索时,什么也没有发生。我在忽略什么?

这是代码

<?php
$pageTitle = "Book List";
$pageHeading = "Book List";
include_once ('header.php');
include_once('databaseConnection.php');


if(isset($_POST['txtSearchBookTitle'])) {
$db = new DatabaseConnection();
$db = $db->db_connection;
$searchTitle = ($_POST['txtSearchBookTitle']);
$sql = $db->prepare("SELECT title FROM tblBook WHERE title LIKE ('%:searchTitle%') ORDER BY title");
$sql->bindParam(':searchTitle', $searchTitle);
$sql->execute();
$result = $sql->fetchAll();

print_r($result);

foreach ($result as $row) {
echo "<li>" . " " . $row["title"]. " " . "</li>";
}
}

?>
<form name="searchBookTitle" method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>" >
<fieldset>
<legend>Search Books</legend>
<label for="txtSearchBookTitle">Search by Book Title</label>
<input type="text" name="txtSearchBookTitle" id="txtSearchBookTitle">
<input type="submit" value="Submit">
</fieldset>
</form>

<?php
include_once('getBooks.php');
getBooks();
include 'footer.php';
?>

最佳答案

您需要以这种方式准备输入:

$searchTitle = $_POST['txtSearchBookTitle'];
$sql = $db->prepare("SELECT title FROM tblBook WHERE title LIKE :searchTitle ORDER BY title");
$sql->execute(array(':searchTitle' => '%' . $searchTitle . '%'));

或者像这样:

$searchTitle = $_POST['txtSearchBookTitle'];
$sql->bindParam(':searchTitle', "%{$searchTitle}%");

关于php pdo 查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26359240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com