Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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
将逗号分隔的值插入mysql数据库PHP_Php_Mysql - Fatal编程技术网

将逗号分隔的值插入mysql数据库PHP

将逗号分隔的值插入mysql数据库PHP,php,mysql,Php,Mysql,昨天我问了一个类似的问题,但不一样。 我有一些像这样的值,我想插入它们以便 123,567,287,124,172,846,372,187 我希望它看起来像这样 id=123 and SortNumber=1 id=567 and SortNumber=2 id=287 and SortNumber=3 UPDATE char_ SET SortNumber=1 WHERE id=123 Set SortNumber=2 WHERE id=567 $variable=123,567,287

昨天我问了一个类似的问题,但不一样。 我有一些像这样的值,我想插入它们以便

123,567,287,124,172,846,372,187
我希望它看起来像这样

id=123 and SortNumber=1
id=567 and SortNumber=2
id=287 and SortNumber=3
UPDATE char_
SET SortNumber=1
WHERE id=123
Set SortNumber=2
WHERE id=567
$variable=123,567,287,124,172,846,372,187
$anothervariable=$variable = str_replace(",", "\r\n", $variable); 


$i=0;
$i++;

 mysqli_query(UPDATE char_ SET SortNumber=$i WHERE id=$anothervariable)
我想在此基础上更新一个表,比如

id=123 and SortNumber=1
id=567 and SortNumber=2
id=287 and SortNumber=3
UPDATE char_
SET SortNumber=1
WHERE id=123
Set SortNumber=2
WHERE id=567
$variable=123,567,287,124,172,846,372,187
$anothervariable=$variable = str_replace(",", "\r\n", $variable); 


$i=0;
$i++;

 mysqli_query(UPDATE char_ SET SortNumber=$i WHERE id=$anothervariable)
现在,我想我可以这样做

id=123 and SortNumber=1
id=567 and SortNumber=2
id=287 and SortNumber=3
UPDATE char_
SET SortNumber=1
WHERE id=123
Set SortNumber=2
WHERE id=567
$variable=123,567,287,124,172,846,372,187
$anothervariable=$variable = str_replace(",", "\r\n", $variable); 


$i=0;
$i++;

 mysqli_query(UPDATE char_ SET SortNumber=$i WHERE id=$anothervariable)

但是,我不确定代码是否100正确,变量将是全部内容,我不知道如何为每行设置不同的变量?

讽刺的是,您可以直接在MySQL中执行此操作

update char_
    set sortnumber = find_in_set(id, $variable)
    where find_in_set(id, $variable) > 0;

注意:这不会利用
id
上的索引,因此只有当
char\uu
很小(几十行或几百行)或者您不关心性能时,才使用它。

建议您使用
explode()
foreach()


查看PHPs
explode()
function要获取的
UPDATE
查询的语法不正确。您需要几个更新语句,或者在注意SQL注入时使用
CASE进行单个更新;您应该更喜欢使用占位符或类似参数化SQL的答案