簡體   English   中英

使用PHP的准備好的語句將數組插入MySQL數據庫

[英]Insert an array to MySQL database using PHP's prepared statements

我有一個要插入數據庫的輸入數組。 我不想在數據庫中為數組中的每個項目設置1行。 我希望他們都走在同一排。 這是我的代碼:

<?php
session_start();
include('../../config/dbconf.php');

mysqli_select_db($conn, $webdb);

$stmt = $conn->prepare("INSERT INTO changelog (title, type, content, author, post_date) VALUES (?, ?, ?, ?, ?)");

$title = $_POST['title'];
$type = $_POST['type'];
$change = $_POST['change'];
$author = $_SESSION['waradmin'];
$date = time();

foreach($_POST['change'] as $key => $value) {
   $changes = "<li>" . $change[$key] . "</li>";
}

$stmt->bind_param("sissi", $title, $type, $changes, $author, $date);
if($stmt->execute()) {
   header('location: ../?p=dashboard');
}else{
   echo "Error: " . $stmt->error;
}

$stmt->close();
?>

該查詢在數據庫中運行,但僅從數組中的第一個列表項開始...是否需要使用implode函數? 我從未使用過它,所以如果這是唯一的解決方案,那么有人可以告訴我如何在此查詢中使用它嗎?

不必替換變量值,而必須串聯

$changes = '';
foreach($_POST['change'] as $key => $value) {
   $changes .= "<li>" . $change[$key] . "</li>";
}

這是使它更干凈的方法:

$changes = '';
foreach($_POST['change'] as $value) {
   $changes .= '<li>' . $value . '</li>';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM