gpt4 book ai didi

带有 NULL 的 PHP 表单输入数组

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

<分区>

使用 PHP 版本 7.1.9,MariaDB 10.1.26。

我正在向 MySQL 数据库提交一组表单数据。输入看起来像这样;

// I have removed additional html form code for brevity
<input type="text" name="ip[]">
<input type="text" name="ip[]">
etc...

当输入为空时,我想将一个 NULL 值插入到我的数据库中,这就是我遇到问题的地方。

我已确保我的数据库表设置为;

  • 允许 null = 是
  • 默认 - 空

我处理表单提交的 PHP 代码如下(请忽略任何安全漏洞)

// I have removed additional php code for brevity
$arr_ip = $_POST['ip'];
for ($i = 0; $i < count($arr_ip); $i++) {
$arr_ip[$i] = $arr_ip[$i] ? $arr_ip[$i] : 'NULL';
$sql = "INSERT INTO staff (ip) VALUES ( ".$arr_ip[$i]." )
}

我收到的错误是;

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax.. ..

当我 var_dump($arr_ip) 我得到;

array(2) {
[0]=>
string(15) "123.123.123.123"
[1]=>
string(0) ""
}

如果我在插入时将 PHP 更改为以下内容(注意附加的 ' '),查询运行成功,插入了两条记录但是字面词 NULL 被插入数据库而不是 (NULL) 值。

$arr_ip = $_POST['ip'];
for ($i = 0; $i < count($arr_ip); $i++) {
$arr_ip[$i] = $arr_ip[$i] ? $arr_ip[$i] : 'NULL';
$sql = "INSERT INTO staff (ip) VALUES ( '".$arr_ip[$i]."' )
}

除了使用准备好的语句之外,有人能告诉我我做错了什么以及如何解决这个问题吗?

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