gpt4 book ai didi

php - 合并和 str_replace

转载 作者:搜寻专家 更新时间:2023-10-30 23:42:55 24 4
gpt4 key购买 nike

我正在使用 COALESCE 仅更新从表单到我的 sql 数据库的非空输入,并且一切正常:

$horiz_deux = $_POST["horiz_deux"];
$horiz_gauche = $_POST["horiz_gauche"];
other ones ...

mysql_query("UPDATE inscription SET horiz_deux = COALESCE('$horiz_deux', horiz_deux) WHERE id = $dossard");
mysql_query("UPDATE inscription SET horiz_gauche = COALESCE('$horiz_gauche', horiz_gauche) WHERE id = $dossard");
other updates...

但是当我试图获得 .替换为 , 为

$horiz_deux = str_replace(".", ",",$_POST["horiz_deux"]);

它也会更新所有其他输入。

有什么想法吗?

最佳答案

我认为是因为函数 http://php.net/manual/en/function.str-replace.php总是返回一个字符串或数组。因此 $horiz_gauche 的值将始终与 NULL 不同,因此由 COALESCE 语句选择,从而导致数据库中 horiz_gauche 的更新。

您可以在将 $horiz_gauche 插入 SQL 语句之前尝试打印出它的值以确认其内容。

你可以试试:

$horiz_deux = isset($_POST["horiz_deux"]) ? $_POST["horiz_deux"] : '';
if ($horiz_deux != '')
{
$horiz_deux = str_replace(".", ",",$horiz_deux);
mysql_query("UPDATE inscription SET horiz_deux = COALESCE('$horiz_deux', horiz_deux) WHERE id = $dossard");
}

这很麻烦,您可以编写一个循环遍历所有输入字段并检查它们的有效输入:

$myFieldNames = array('horiz_deux','horiz_hauche','something_else');
foreach ($myFieldNames as $fieldName)
{
$value = isset($_POST[$fieldName]) ? $_POST[$fieldName] : '';
$value = str_replace(".", ",",$value);
mysql_query("UPDATE inscription SET $fieldName = COALESCE('$value', $fieldName) WHERE id = $dossard");
}

关于php - 合并和 str_replace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32871488/

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