2

次の文字列を表示する変数があります。

$item_value = itemOne,itemTwo,itemThree

この文字列を取得して、各項目を単一の列の個別の行エントリとして挿入したいと思います。さらに、各エントリに自動インクリメント キー値を挿入する必要があります。したがって、この例を完成させるために、完成時に mysql テーブルを次のように表示する必要があります。

ID || item_value || comments

----------------------------------------

1 || itemOne || --------------

2 || itemTwo || --------------

3 || itemThree || --------------

コンマの周りの文字列を分解してからテーブルに挿入する必要があると感じています。これを試みましたが、各項目を個別の行エントリとして取得する際に問題が発生しています。どんな援助も大歓迎です。

4

2 に答える 2

2

自動インクリメントについては、データベースに処理させることをお勧めします。mysql の場合は id フィールドに AUTO_INCREMENT を付けて宣言するだけです。postgres の場合は、データ型をシリアルに設定できます。各行を区切るには、php の爆発関数を使用します

ここに小さな例があります

<?php
  $dbh = new PDO('mysql:host=localhost;dbname=database', 'username', 'password');
  $query = "INSERT into my_table (item_value) VALUES (?)";

  $data = 'itemOne,itemTwo,itemThree,itemFour';
  $st = $dbh->prepare($query);

  foreach(explode(',', $data) as $r) {
    // user array($r) for php 5.3 or lower
    $st->execute([$r]);
  }

これは、データベース接続を処理するための推奨される方法である PDO を使用します

于 2013-05-18T03:34:50.920 に答える
1

このようなものはそれらを分割し、データベースに挿入するオプションを提供する必要があります:

<?php
$item_value = 'itemOne,itemTwo,itemThree';
$item_array = explode(",",$item_value);

foreach($item_array as $key => $value){
    // insert into the db here
    $query = "INSERT INTO table_name set item_value = '".mysql_real_escape_string($value)."', ID = '".($key + 1)."'";
    // however you choose to connect and insert into the database goes here :)
}
?>
于 2013-05-18T03:13:07.207 に答える