簡體   English   中英

將包含多個數組的數組放入mysql表

[英]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

您可以使用序列化功能,但我建議不要使用它。 創建三個表,其中包含以下幾列,具體取決於您的數據模型,但這將是這樣的:

  • moviesmovies 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語句將數據插入數據庫表中。

為了進行檢索,您將需要使用SELECT語句。 最后,如果您沒有使用過SQL和數據庫,請查看SQL簡介

暫無
暫無

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

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