如何使用 php 从 SQL 数据库中选择包含特定文本的所有行 [重复]
Posted
技术标签:
【中文标题】如何使用 php 从 SQL 数据库中选择包含特定文本的所有行 [重复]【英文标题】:How do I SELECT from SQL database all rows that contain certain text using php [duplicate] 【发布时间】:2020-04-18 11:53:36 【问题描述】:我的代码正在运行,但并不是我想要的那样。现在,如果我搜索“Tom Trio”,它会显示包含名称“Tom Trio”的行的所有结果,但如果我搜索“Tom Johnson”,它会显示没有找到任何结果。我希望即使当我搜索“Tom Johnson”时,它仍然会显示“Tom Trio Johnson”个人资料作为从数据库中找到的结果的一部分。我该怎么办?
我有一个数据库表如下:
| Full Name | Age | Gender |
|------------------------|-------|---------|
| Tom Trio Johnson | 23 | Male |
| Silvia Johnson Calvin | 27 | Female |
| James Doe | 16 | Male |
index.php 代码如下:
<form action="results.php" method="post">
<input type="text" placeholder="Search..." name="search_results"/>
<button type="submit">Submit</button>
</form>
results.php 代码:
<?php
$searchResults = mysqli_real_escape_string($conn, $_POST['search_results']);
$result = mysqli_query($conn,"SELECT * FROM guests WHERE fullName LIKE '%$searchResults%'");
while($row = mysqli_fetch_assoc($result))
echo $searchResults . $row['Age'] . $row['Gender'];
mysqli_close($conn);
?>
【问题讨论】:
【参考方案1】:首先,不要使用文字值来处理查询。 学习使用参数。
其次,您可能真的想要全文搜索。但是,您可以使用带有like
的通配符来处理您的特定问题:
fullName LIKE replace(?, ' ', '%')
?
是一个参数占位符。
【讨论】:
以上是关于如何使用 php 从 SQL 数据库中选择包含特定文本的所有行 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何从 SQL 表中选择特定行并连接 SQL 服务器中的多个表?
如何从SQL表中选择特定行并在SQL Server中连接多个表?