将逗号分隔的值插入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的答案