Hướng dẫn insert associative array into mysql php - chèn mảng kết hợp vào php mysql

2

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi cần chèn mảng sau vào bảng MySQL với tên cột, tiêu đề, URL, logo. Tôi đã tạo bảng và viết một truy vấn để chuyển mảng. Nhưng nó đã chèn dòng cuối cùng của mảng và để lại ... làm ơn giúp tôi ... đây là mảng của tôi

$con = mysql_connect["localhost","",""];

if [!$con]
  {
  die['Could not connect: ' . mysql_error[]];
  }

mysql_select_db["media", $con];

$featured = array[];

$featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];

$featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];

$featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];

$featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];



 $sql  = "INSERT INTO featured";


   $sql .= " [`".implode["`, `", array_keys[$featured]]."`]";


   $sql .= " VALUES ['".implode["', '", $featured]."'] ";


   $result = mysql_query[$sql] or die[mysql_error[]];

Hỏi ngày 28 tháng 9 năm 2012 lúc 16:48Sep 28, 2012 at 16:48

4

Bạn cần lặp qua mảng $featured:

$con = mysql_connect["localhost","",""];
if [!$con]
  {
  die['Could not connect: ' . mysql_error[]];
  }

mysql_select_db["media", $con];
$featured = array[];
$featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];
$featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];
$featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];
$featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];

foreach [$featured as $array] {
    $sql  = "INSERT INTO featured";
    $sql .= " [`".implode["`, `", array_keys[$array]]."`]";
    $sql .= " VALUES ['".implode["', '", $array]."'] ";
    $result = mysql_query[$sql] or die[mysql_error[]];
}

Hoặc để chèn một số bản ghi vào một truy vấn như đã đề xuất:

$sql  = "INSERT INTO featured";
$sql .= " [`".implode["`, `", array_keys[$featured[0]]]."`] VALUES"; // make sure that $featured contains the same number of key=>value pairs
foreach [$featured as $array] {
    $sql .= " ['".implode["', '", $array]."'],";
}
$sql = substr[$sql,0,-1]; // remove last comma
$result = mysql_query[$sql] or die[mysql_error[]];

Vui lòng đọc trên SQL tiêm.

Đã trả lời ngày 28 tháng 9 năm 2012 lúc 16:53Sep 28, 2012 at 16:53

RationalBossrationalBossrationalboss

5.3323 Huy hiệu vàng29 Huy hiệu bạc49 Huy hiệu đồng3 gold badges29 silver badges49 bronze badges

4

Bạn có thể sử dụng truy vấn multiple insert như INSERT INTO [column1, column2,...] VALUES ['row1a', 'row1b'..], ['row2a', 'row2b'..]...

    $featured = array[];
    $featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];
    $featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];
    $featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];
    $featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];

    $sql  = "INSERT INTO featured ";


   $sql .= " [`".implode["`, `", array_keys[$featured]]."`]";
   $sql .= " VALUES ";


  for[ $i=0; $i < count[$featured]; $i++] {
    $sql .= "['". implode["', '", $featured[$i]]."'] "; 
    if[ $i < [count[$featured] - 1] ]
      $sql .= ", ";
  }

Nhìn thấy nó trong hành động ở đây.

Đã trả lời ngày 28 tháng 9 năm 2012 lúc 17:01Sep 28, 2012 at 17:01

Teena Thomasteena ThomasTeena Thomas

5.1131 Huy hiệu vàng12 Huy hiệu bạc17 Huy hiệu đồng1 gold badge12 silver badges17 bronze badges

Như Hakra đã đề xuất, bạn có thể chèn nhiều hàng bằng một truy vấn MySQL bằng cách thực hiện thay đổi sau mã của bạn:

$featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];
$featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];
$featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];
$featured[] = array['name' => '', 'title' => '', 'url' => '', 'logo' => ''];

$sql  = "INSERT INTO featured";
$sql .= " [`".implode["`, `", array_keys[$featured]]."`]";
$sql .= " VALUES "; // moved parenthetical grouping to foreach loop below
foreach [$featured as $feature] {
    $sql .= "['".implode["', '", $featured]."'], "; // note comma after each parenthetical grouping
}
$sql = substr[$sql, 0, -2]; // we'll cut off the last ", " added to the string

$result = mysql_query[$sql] or die[mysql_error[]];

Đã trả lời ngày 28 tháng 9 năm 2012 lúc 17:05Sep 28, 2012 at 17:05

Đây là một công việc cho PDO! Bạn nên sử dụng pdo hoặc mysqli thay vì mysql_, nhưng đó là một cuộc thảo luận hoàn toàn khác.

Những gì bạn muốn làm là thế này:

// ========================================================
// Define insert rows. Note the colon before each key name. 
// That's there because we'll be passing this to a PDOStatement as bound 
// parameters. Depending on the logic of your program there may be different 
// ways you want to handle this.
// ========================================================
$featured = array[];
$featured[] = array[':name' => '', ':title' => '', ':url' => '', ':logo' => ''];
$featured[] = array[':name' => '', ':title' => '', ':url' => '', ':logo' => ''];
$featured[] = array[':name' => '', ':title' => '', ':url' => '', ':logo' => ''];
$featured[] = array[':name' => '', ':title' => '', ':url' => '', ':logo' => ''];


// ========================================================
// Create the PDO object. Define your query and prepare a statement. I use the 
// INSERT SET syntax rather than the INSERT VALUES syntax purely for readability. 
// Either will work with PDO. Also, most programmers don't set the query_str as a 
// separate variable as I do here. I find it improves readability.
// ========================================================
$db_obj = new PDO [/*connection params go here */]; 
$query_str = "INSERT INTO featured SET
    name = :name, 
    title = :title, 
    url = :url, 
    logo = :logo"; 
$query_obj = $db_obj->query [$query]; 


// ========================================================
// Loop through your rows in $featured and execute the SQL query, passing the
// new row of parameters each time.
// ========================================================
foreach [$featured as $row] {
    $query_obj->execute [$row];
}

Đã trả lời ngày 28 tháng 9 năm 2012 lúc 17:10Sep 28, 2012 at 17:10

David Grenierdavid GrenierDavid Grenier

1.1961 Huy hiệu vàng9 Huy hiệu bạc23 Huy hiệu đồng1 gold badge9 silver badges23 bronze badges

Làm thế nào để chèn mảng trong mysql bằng PHP?

Mã sau sẽ giúp tạo chức năng PHP để chèn dữ liệu php mảng vào MySQL. Cho người yêu cũ. Chúng tôi có mảng PHP sau. $ records = mảng ["0" => mảng ["parvez", "php", "12"], "1" => mảng ["devid", "java", "34"], "2" =>> mảng ["ajay", "nodejs", "22"]];$records = array[ "0" => array["Parvez", "PHP", "12"], "1" => array["Devid", "Java", "34"], "2" => array["Ajay", "Nodejs", "22"] ];

Tôi có thể chèn mảng trong mysql không?

Vì cơ sở dữ liệu không hỗ trợ các loại dữ liệu mảng, không có cách trực tiếp để lưu trữ chúng trong DB. Nhưng bạn có thể chuyển đổi mảng dưới dạng chuỗi và chèn vào mysql. Có hai cách bạn có thể làm điều đó, một là bằng cách tuần tự hóa mảng và cách còn lại đang lưu nó dưới dạng chuỗi JSON.you can convert array as string and insert into mysql. There are two ways you can do it, one is by serializing the array and the other is saving it as json string.

Làm thế nào để lưu trữ dữ liệu mảng trong cơ sở dữ liệu trong PHP?

Cấu trúc bảng.Tạo bảng nội dung_arr.....
Cấu hình.Tạo một cấu hình.....
Với serialize [] và unserialize [] xác định hai mảng - $ name_arr và $ user_arr.....
Với Implode [] và Explode [] sử dụng Implode [] để phân tách $ name_arr bằng cách phân cách [Hồi,,] và nhận một chuỗi.....
Với vòng lặp.Vòng lặp trên mảng $ users_arr.....
Conclusion..

Làm thế nào để lưu mảng trong mysql PHP?

Sử dụng hàm PHP serialize [] để chuyển đổi mảng thành chuỗi.Các chuỗi này có thể dễ dàng được lưu trữ trong cơ sở dữ liệu MySQL.Sử dụng unserialize [], chúng có thể được chuyển đổi thành mảng một lần nữa nếu cần.. These strings can easily be stored in MySQL database. Using unserialize[] they can be converted to arrays again if needed.

Bài Viết Liên Quan

Chủ Đề