gpt4 book ai didi

php - 如何在参数为空时获取所有值

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

我有一个查询表单,需要从 MYSQL 中的自定义表中获取详细信息。如果该参数留空,则应提取所有记录。如果在参数中输入了值,则应获取该值的记录。

到目前为止,这是我的代码:

<?php
$host = 'localhost';
$dbname = 'test';
$username = 'test';
$password = 'xxx';
session_start();
global $wpdb, $current_user;
$conn = mysqli_connect($host, $username, $password, $dbname);
if (!$conn) {
die ('Failed to connect to MySQL: ' . mysqli_connect_error());
}
$param_1=mysqli_real_escape_string($conn,$_GET['param_1']);

if (!empty($param_1)){
$sql = "SELECT column1 ,column2,column3,column4,column5
FROM xxx
WHERE column1='$param_1'";
} else {
$sql = 'SELECT column1 ,column2,column3,column4,column5
FROM xxx';
}

$query = mysqli_query($conn, $sql);

if (!$query) {
die ('SQL Error: ' . mysqli_error($conn));
}
?>

这只需要一个参数就可以正常工作。我将需要添加更多参数,这些参数也可以为空。

例如

$sql = "SELECT column1 ,column2,column3,column4,column5
FROM xxx
WHERE column1='$param_1' AND column2='$param_2";

其中任何一个都可以为空。我如何在 MYSQL 中处理这个问题?

我的问题是处理这种情况的最佳方法是什么?

提前致谢。

最佳答案

您可以像这样继续追加查询:

$sql = "SELECT column1 ,column2,column3,column4,column5
FROM xxx
WHERE 1=1 ";

if(!empty($param1)){
$sql.= " and column1='$param1'";
}
if(!empty($param2)){
$sql.= " and column2='$param2'";
}
if(!empty($param3)){
$sql.= " and column3='$param3'";
}

注意:这样传递参数会导致SQL注入(inject),使用绑定(bind)传递参数可以避免SQL注入(inject)。 Here is a good read about it.

关于php - 如何在参数为空时获取所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55812731/

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