0

带有 2 个字段的输入表单。

Value of one field is 11
The second field is blank.
Field names are `date_day[]`

这是我的代码:

foreach ($_POST['date_day'] as $i => $date_day) {
$strlen = (strlen($date_day));
echo $strlen .' strlen<br>';
}

但我明白了:

2 strlen
0 strlen

基于以上,我希望代码将仅插入到 mysql 中 strlen 大于 0 的数组元素

这是我的插入代码:

if ( (strlen($date_day)) > 0 ) {
$sql .= implode(', ', $insertQuery) . 'ON DUPLICATE KEY UPDATE RecordDay = VALUES(RecordDay);';
$stmt = $db->prepare($sql);
$stmt->execute($insertData);
}

但是,如果其中一个字段的字符串长度大于 0,而其他字段的字符串长度为 0,则代码会插入两个字段(第二个字段为空)。

我只需要插入字符串长度大于 0 的字段。如果 0 根本不插入.... 错误在哪里(代码中需要更改什么)?

4

1 回答 1

0

更改此代码

if ( (strlen($date_day)) > 0 ) {
$sql .= implode(', ', $insertQuery) . 'ON DUPLICATE KEY UPDATE RecordDay = VALUES(RecordDay);';
$stmt = $db->prepare($sql);
$stmt->execute($insertData);
}

if ( (strlen(trim($date_day))) > 0 ) {
$sql .= implode(', ', $insertQuery) . 'ON DUPLICATE KEY UPDATE RecordDay = VALUES(RecordDay);';
$stmt = $db->prepare($sql);
$stmt->execute($insertData);
}
于 2013-05-20T08:01:16.710 回答