SQL 准备好的语句 select 所有结果都为 =
SQL Prepared statements select all result with =
所以我在 PHP 中使用准备好的语句发送 SQL 命令,其中有 5 个不同的匹配列。目标是应该有一个选项,如果只有一列是 selected,命令应该能够 运行。如果您选择所有 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 编辑的示例(获取所有数据)
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);
所以我在 PHP 中使用准备好的语句发送 SQL 命令,其中有 5 个不同的匹配列。目标是应该有一个选项,如果只有一列是 selected,命令应该能够 运行。如果您选择所有 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 编辑的示例(获取所有数据)
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);