我開始進入數組,並沒有完全理解它的工作原理。我習慣使用explode/implode函數,但是我通過數組可以使我的生活在這部分代碼中變得更加簡單。這裏是調用的函數:將數組存儲在sql數據庫中
function save_event($event_items = NULL) {
include 'connect.php';
$now = date("Y-m-d H:i:s");
$sqla = "
INSERT INTO `event`(`event_items`, `event_entered`)
VALUES ('$event_items','$now')";
$resulta = mysqli_query($link, $sqla);
if(!$resulta)
{
echo '<br/>An error occurred while inserting your data. Please try again later.<br/>';
}
else
{ echo 'this is the variable to be stored:<br/>';
print_r($event_items);
$sql = "SELECT * FROM `event` WHERE event_entered = '".$now."'";
$result = mysqli_query($link, $sql);
if($result)
{ while($row = mysqli_fetch_assoc($result))
{ echo '<br/></br>This is the value of the database:<br/>';
print_r ($row['event_items']);
}
}
}
}
此功能打印:
this is the variable to be stored:
Array([0] => Array ([item] => Powered Speaker [note] => [quantity] => 2 [price] => 200.00 [category] => Audio) [1] => Array ([item] => Wireless Microphone [note] => Lavalier [quantity] => 3 [price] => 175.00 [category] => Audio))
This is the value of the database:
Array
在phpMyAdmin,我都在列event_items
看到這個詞Array
。
附加信息: 我有一個名爲Groups的表,每個組都有一個或多個訂單(另一個表稱爲Order),每個訂單也有一個或多個事件(另一個表)。最後,每個事件將包含一個或多個項目(每個項目具有相應的價格,數量,註釋和類別),這些項目存儲在Event表格的一個(或多個)列中。
你不能只插入一個數組,並期望它按照你在這裏的方式進行存儲。您可以返回使用爆炸並爆炸或規範化模式並每行存儲一個值。 – mzedeler
'數組'意味着要存儲的變量是數組而不是字符串,因爲它應該是。所以這個問題出現在你的INSERT查詢中。考慮使用'serialize()'和'unserialize()'。 – Voitcus