gpt4 book ai didi

php - 如何防止数据库搜索在空字符串上运行?

转载 作者:行者123 更新时间:2023-11-29 18:12:49 24 4
gpt4 key购买 nike

使用我当前的代码,当我在搜索输入字段中输入空字符串或一个空格的字符串时,我会得到数据库中的每个项目作为结果。如何才能使输入空字符串时不运行搜索?

    <form action="search.php" method="POST">
<input type="text" name="search" placeholder="search site">
<button type="submit" name="submit-search"><img src="../assets/search icon-05.png"></button>
</form>



<?php
if (isset($_POST['submit-search'])){
$search = mysqli_real_escape_string($conn, $_POST['search']);
$sql = "SELECT * FROM articles WHERE title LIKE '%$search%' OR abstract LIKE '%$search%' OR keywords LIKE '%$search%'";
$result = mysqli_query($conn, $sql);
$queryResult = mysqli_num_rows($result);

if ($queryResult > 0){
echo $queryResult . " results found";

while ($row = mysqli_fetch_assoc($result)){
echo "<div class='articleItem'>
<h2>".$row['title']."</h2>
<p>".$row['abstract']."</p>
<a href=".$row['link']." target='_blank'>".$row['link']."</a>
</div>";
}
}
else {
echo "There are no results matching your search.";
}
}
?>

最佳答案

检查是否已设置,然后修剪,然后确认它仍然至少有一个字符。

if ( isset( $_POST['submit-search'] ) ) {
$search = trim( (string) $_POST['submit-search'] );

if ( isset( $search[0] ) ) { // Has at least one character?
// Run query.
}
}

如果您有 PHP 7+,这里有一个更简洁的语法。

$search = trim( (string) ( $_POST['submit-search'] ?? '' ) );

if ( isset( $search[0] ) ) { // Has at least one character?
// Run query.
}

关于php - 如何防止数据库搜索在空字符串上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47258327/

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