gpt4 book ai didi

PHP 表单输入和 mySQL Null

转载 作者:行者123 更新时间:2023-11-29 22:54:10 24 4
gpt4 key购买 nike

我有一个将数据提交到 PHP 脚本的表单。然后,我使用脚本查询 mySQL 数据库以返回结果。

表格:

<form class="search" action="customers_table.php" method="post">
Customer ID: <input type="text" id="id" name="id" autocomplete="off"/><br/>
Label: <input type="text" id="label" name="label" autocomplete="off"/><br/>
Phone: <input type="text" id="phone" name="phone" autocomplete="off"/><br/>
State: <input type="text" id="province" name="province" autocomplete="off"/><br/>
<input type="submit" value="search"/>
</form>

PHP 脚本:

$label = "%".$_POST['label']."%";
$id = "%".$_POST['id']."%";
$phone = "%".$_POST['phone']."%";
$province = "%".$_POST['province']."%";

$db->query("SELECT id AS 'Customer ID',
label AS 'Name',
province AS 'State',
phone AS 'Phone'
FROM customer
WHERE label LIKE :label
AND id LIKE :id
AND phone LIKE :phone
AND province LIKE :province");

问题是我搜索的某些字段可能在数据库中包含 NULL 值。例如,“电话”可以为 NULL。

因此,如果上面表单中的phone留空并提交表单,我将不会看到phone为NULL的结果。

我的查询正在查找...AND Phone LIKE '%%',其中不包括 NULL 值。

有什么方法可以在任何一部手机上进行搜索,例如“%whatever%”,或者如果手机是空的,则什么也没有?

我可能可以将类似下面的东西组合在一起,但我怀疑可能有更好的方法?我可能会为多个列执行此操作。

    // if phone is entered, add to SQL query
if(isset($_POST['phone'])) {
$phone_qry = "AND phone LIKE :";
$phone = "%".$_POST['phone']."%";
}
// if phone not entered, don't add to query
else {
$phone_qry = "";
$phone = "";
}


$label = "%".$_POST['label']."%";
$id = "%".$_POST['id']."%";
$phone = "%".$_POST['phone']."%";
$province = "%".$_POST['province']."%";

$db->query("SELECT id AS 'Customer ID',
label AS 'Name',
province AS 'State',
phone AS 'Phone'
FROM customer
WHERE label LIKE :label
AND id LIKE :id"
. $phone_qry . $phone . "
AND province LIKE :province");

最佳答案

谢谢艾德! COALESCE : WHERE COALESCE(Label, '') LIKE :label 工作得很好。这正是我所追求的。

关于PHP 表单输入和 mySQL Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28788725/

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