繁体   English   中英

SQL 准备好的语句 select 所有结果都带有 =

[英]SQL Prepared statements select all result with =

所以我在 PHP 中使用准备好的语句来发送 SQL 命令,其中有 5 个不同的匹配列。 目标是应该有一个选项,如果只选择一列,命令应该能够运行。 如果您选择所有 5 个不同的匹配列,这些选项也应该有效。

$sqlPrepared = $conn->prepare("SELECT * FROM crashes_history WHERE region = ? AND county = ? and crash_id = ?");
$sqlPrepared->bind_param("sssii", $region,  $county, $crash_id, $limit, $offset);

所以我所做的是,如果 $region 不存在,我们将 $region 参数设置为 'region' 到 select 所有结果。 但不幸的是,这不适用于准备好的语句。

未选择列的示例(获取所有数据)

SELECT * FROM crashes_history WHERE region = region AND county = county and crash_id = crash_id

您可以在此处使用灵活的准备好的语句,如果它是NULL ,它将忽略给定的列:

$sql = "SELECT *
        FROM crashes_history
        WHERE (region = ? OR ? IS NULL) AND
              (county = ? OR ? IS NULL) AND
              (crash_id = ? OR ? IS NULL)";
$sqlPrepared = $conn->prepare($sql);
$sqlPrepared->bind_param("ssssssii", $region, $region, $county, $county, $crash_id, $crash_id, $limit, $offset);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM