[英]Putting array containing multiple arrays into mysql table
我有的:
一個包含30個鍵的數組,一些鍵僅包含一個值,而其他鍵則包含多個值(一個鍵包含28個值)。 所以首先,我什至不知道這是否行得通。 但是我嘗試使用在這里找到的其他示例來得出null。
這樣說
'name' => somemovie
cast => person1, person2, person3, person4, person5, person6
poster => poster1, poster2, poster3
year => someyear
等等等等
我的問題是:是否可以將它們放在mysql表中? 我正在使用PHP 5.3。
這是我擁有的代碼,也是幾年前使用的下半部分,用於一個簡單的數組,並且運行良好。 不再那么多了。
$imdb = new Imdb();
$movieArray = $imdb->getMovieInfo("$cat");
extract ($movieArray);
$mysqli = new mysqli("localhost", "custom_xxxx", "xxxxxxxxxx", "custom_xxxx");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";
$result = mysqli_insert_array("imdb", $movieArray);
if( $result['mysqli_error'] ) {
echo "Query Failed: " . $result['mysqli_error'];
} else {
echo "Query Succeeded! <br />";
echo "<pre>";
print_r($result);
echo "</pre>";
}
?>
如果您只是想將數組存儲為對象,並且不希望在其上運行sql查詢,則要序列化對象並將其另存為二進制mysql。
序列化: http : //php.net/manual/de/arrayobject.serialize.php
mysql-binary: http : //dev.mysql.com/doc/refman/5.1/de/binary-varbinary.html
您可以使用序列化功能,但我建議不要使用它。 創建三個表,其中包含以下幾列,具體取決於您的數據模型,但這將是這樣的:
movies
( movies
ID,年份,海報ID,演員ID)-在此處存儲電影 actors
(actor_id,姓名,職業)-在此處存儲演員信息。 posters
(movie_id)-在此處存儲海報信息。 現在,用於將數據輸入數據庫。 您需要執行以下操作:
$imdb = new Imdb();
$movieArray = $imdb->getMovieInfo("$cat");
extract ($movieArray);
$mysqli = new mysqli("localhost", "custom_xxxx", "xxxxxxxxxx", "custom_xxxx");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";
//the following code assumes $movieArray like this:
// $movieArray = Array(
//'name' => somemovie,
//'cast' => array(person1, person2, person3, person4, person5, person6)
//'poster' => array(poster1, poster2, poster3)
//'year' => someyear)
foreach($movieArray as $row){
foreach($row['cast'] as $name){
mysqli_query("INSERT INTO actor values($name['name'], $name['dob'])");
}
foreach($row['poster'] as $name){
//insert into poster table
}
//add foreach loop for each table.
}
if( $result['mysqli_error'] ) {
echo "Query Failed: " . $result['mysqli_error'];
} else {
echo "Query Succeeded! <br />";
echo "<pre>";
print_r($result);
echo "</pre>";
}
這不是實際的代碼,因為您沒有顯示數組結構,但是我想您會明白的。 基本上,對於多維數組,您需要使用foreach
循環並使用insert
語句將數據插入數據庫表中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.