[英]Inserting multiple array values in mySQL database
我有兩個PHP變量,都是字符串:
$friendslist = "2323443,7245,284683,345123,8456234,95432"
$id = "10288272";
我關注的表的結構如下:
表名稱:用戶鏈接
link_id user_1 user_2
我需要將這些值插入表中,以便user_1始終是$ id,而user_2是$ friendslist字符串的成員。 它看起來像這樣:
link_id user_1 user_2
1 10288272 2323443
2 10288272 7245
3 10288272 284683
4 10288272 345123
我知道插入許多值的基礎知識,因此,在這種情況下,我會使用以下方法:
mysql_query("INSERT INTO UserLinks (User_1, User_2) VALUES ('10288272','2323443'),('10288272','7245'),('10288272','284683')");
但是我想到的唯一方法是寫這樣的(因為這些值顯然不是插入的實際值)是這樣的:
$friendarray = explode(",", $friendslist);
for ($n = 0; $n < count($friendarray); $n++) {
$friendidpush = "('".$id."','".$friendarray[$n]."'),";
array_push($frienduserarray, $friendidpush);
}
接下來將$ frienduserarray轉換為字符串,然后將其包括在我的查詢中。 這為我返回了一個錯誤,我認為這不是正確的方法...但是我正在努力尋找在線解決方案。
您沒有將$frienduserarray
初始化為一個數組,所以array_push
不起作用。
$friendarray = explode(",", $friendslist);
$frienduserarray = array();
for ($n = 0; $n < count($friendarray); $n++) {
$friendidpush = "('".$id."','".$friendarray[$n]."'),";
array_push($frienduserarray, $friendidpush);
}
請注意,這似乎使我感到復雜。 為什么第二個數組甚至是必需的? 只需使用字符串串聯即可。
$query = "INSERT INTO UserLinks (User_1, User_2) VALUES ";
$friendarray = explode(",", $friendslist);
foreach ($friendarray as $friend) {
$query .= "('" . $id . "','" . $friend . "'),";
}
$query = substr($query, 0, -1); // remove trailing comma
mysql_query($query);
$comma = "";
$values = "";
$array = explode(",",$friendslist);
foreach ($array as $friendid) {
$values .= $comma."($id,$friendid)";
$comma = ",";
}
$sql = "INSERT INTO UserLinks (User_1, User_2) VALUES $values"
由於沒有在代碼中的任何位置將$frienduserarray
聲明為數組,因此出現此錯誤。 只要聲明一下
$frienduserarray=array();
在for
循環之前。 之后,您的代碼應如下所示
$friendarray = explode(",", $friendslist);
$frienduserarray=array();
for ($n = 0; $n < count($friendarray); $n++) {
$friendidpush = "('".$id."','".$friendarray[$n]."'),";
array_push($frienduserarray, $friendidpush);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.