Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用数组中的数据更新表列?_Php_Mysql - Fatal编程技术网

Php 如何使用数组中的数据更新表列?

Php 如何使用数组中的数据更新表列?,php,mysql,Php,Mysql,我有一个没有AI索引的表。我必须从一个列中修剪数据,现在我需要用修剪的结果进行更新,但对于我现在的cod,只更新相同的值,即数组中的最后一个值 $i=0; while ($row = $column->fetch_assoc()) { $arr[$i] = trim($row['profile_value'],"\""); $db->query("UPDATE `vwfl5_user_profiles` SET profile_value='".$arr[$i]."'"); $i++

我有一个没有AI索引的表。我必须从一个列中修剪数据,现在我需要用修剪的结果进行更新,但对于我现在的cod,只更新相同的值,即数组中的最后一个值

$i=0;
while ($row = $column->fetch_assoc()) {
$arr[$i] = trim($row['profile_value'],"\"");
$db->query("UPDATE `vwfl5_user_profiles` SET profile_value='".$arr[$i]."'");
$i++;
}

谢谢

您不需要为此设置循环。只需一个查询即可

$db->query("UPDATE `vwfl5_user_profiles` SET profile_value= TRIM( '\"' FROM profile_value)");
如果不想更新每条记录,只需添加一个WHERE子句,其中包含用于获得循环结果的任何条件

$db->query("UPDATE `vwfl5_user_profiles` 
    SET profile_value = TRIM( '\"' FROM profile_value) WHERE... ");
2件事:

  • 您不应该更新特定的行吗?Ie:
    “更新`vwfl5\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  • 我想你可以用它来做

  • 应添加带有表主键的WHERE子句,以标识数据库中的每个项目:

    $i=0;
    而($row=$column->fetch_assoc()){
    $arr[$i]=修剪($row['profile\u value',“\”);
    $db->query(“更新`vwfl5_用户_配置文件`SET profile_value=”“$arr[$i]”其中id=“..$row['id']”);
    $i++;
    }
    
    您想做什么。请明确指定。您的问题不清楚。您没有
    where
    子句,因此您正在更新该表中的每一条记录。由于您是在循环中执行此操作,因此只有循环中使用的最后一个值将保留在表中,因为您现在已将以前的所有更新都丢弃。OP正在修剪
    ->
    trim($row['profile\u value',“\”)
    ,其中MySQL的-Oops完全忽略了第二个trim参数。谢谢,@Sean。没有唯一的id,并且该用户id不是唯一的。我知道如何使用where,但在我的情况下不起作用。如果您将其从
    更改为…设置profile\u value=trim(profile\u value)
    …设置profile\u值=修剪(“”)从profile\u值开始)
    您的答案将非常准确。没有唯一的id,并且该用户id不是唯一的。我知道如何使用Where,但在我的情况下不起作用。我认为您需要一个主键,即使它是逻辑的并且没有在MySQL中声明,即Where
    email='$row[12]'和name='$row[4]'
    。指示您正在更新特定行的任何内容。否则,@DontPanic#1解决方案应该会起作用。