gpt4 book ai didi

PHP:将多个数组插入mysql表

转载 作者:行者123 更新时间:2023-11-29 20:52:55 26 4
gpt4 key购买 nike

我正在测试将多个数组插入到我的表中,我已经尝试了所有我能做的,但我没有得到。这是我的代码:

<?php

ini_set('display_errors',1);
//ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$mysqli = new mysqli(HOST,USER,PASS,DB);
$message = array();

$id =1;
$SocialHandle = "Facebook,Twitter,LinkIn";
$SociaUrl ="Url1,Url2,Url3";

$strSocialHandle = explode(',', $SocialHandle);
$strSociaUrl = explode(',', $SociaUrl);
print_r($strSocialHandle);
print_r($strSociaUrl);
$sql = "INSERT INTO `social_table`(`id`, `social_handle`, `handle_url`) VALUES";
foreach($strSocialHandle as $SocialNameValue){
$sql .= "({$id}, '{$SocialNameValue}','{$strSociaUrl}'),";
}
$sql = rtrim($sql, ',');
$result = $mysqli->query($sql);

if (!$result){
$message = array('Message' => 'insert fail or record exist');
echo json_encode($message);
}else{
$message = array('Message' => 'new record inserted');
echo json_encode($message);
}
?>

这是我的目标成就:

ID         social handle         handle url
1           Facebook         url1
1           Twitter             url2
1           LinkIn             url3

请帮忙。

最佳答案

您可以使用 for 循环作为

$id =1;
$SocialHandle = "Facebook,Twitter,LinkIn";
$SocialHandle = explode(",", $SocialHandle);
$SociaUrl = "Url1,Url2,Url3";
$SociaUrl = explode(",", $SociaUrl);

$sql = "INSERT INTO `social_table`(`id`, `social_handle`, `handle_url`) VALUES";
for ($i = 0; $i < count($SocialHandle); $i++) {
$sql .= "({$id}, '$SocialHandle[$i]','$SociaUrl[$i]'),";
}


$sql = rtrim($sql, ',');
echo $sql;
$result = $mysqli->query($sql);

输出

INSERT INTO social_table(id, social_handle, handle_url) VALUES(1, 'Facebook','Url1'),(1, 'Twitter','Url2'),(1, 'LinkIn','Url3')

DEMO

已更新

最好使用prepare和bind语句来防止表单sql注入(inject)

for ($i = 0; $i < count($SocialHandle); $i++) {
$sql = "INSERT INTO `social_table`(`id`, `social_handle`, `handle_url`) VALUES (?,?,?)";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('iss', $id, $SocialHandle[$i], $SociaUrl[$i]);
$stmt->execute();
}

关于PHP:将多个数组插入mysql表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37879860/

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