2016-05-04 9 views
1

私はデータベースに挿入する入力配列を持っています。私は、配列内の各項目のデータベースに1行を持ちたいとは思わない。私は彼ら全員が同じ行に行きたい。だから、これは私のコードです:PHPのプリペアドステートメントを使用してMySQLデータベースに配列を挿入します

<?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(); 
?> 

問合せは、データベースで実行されますが、配列の最初のリスト項目...私は破機能を使用する必要がありますか?私はそれを使用したことがないので、それが唯一の解決策であれば誰かが私にこのクエリでどのように使っているかを教えてもらえますか?

答えて

4

代わりの変数の値を置き換えるあなたは

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

を連結する必要があり、これはもう少しきれいにする方法です:

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