1

これをデータベースに挿入するにはどうすればよいですか?

私はこのファイルを持っています:

[player_id] => 70658
[mobile_number] => 09********
[name] => gorbani
[password] => ******
[verification_code] => KUTY6U
[subscription] => 0
[gold] => 147350
[date_joined] => 2011-04-26 20:02:40
[free_spin] => 0
[player_status] => 1
[scriptedSpin] => PLG
[message_flag] => N
[gold_award] => 0

これは、1 つのテキスト ファイルの 300,000 以上のエントリのうちの 1 つにすぎません。自動的にffを挿入する必要があります。mysql db に

mobile_number
name
password
gold

取られ挿入されます。

ありがとうございました。

よろしく、メヒヒ

それがファイルのフォーマット方法です。

[player_id] => 70658
[mobile_number] => 09********
[name] => gorbani
[password] => ******
[verification_code] => KUTY6U
[subscription] => 0
[gold] => 147350
[date_joined] => 2011-04-26 20:02:40
[free_spin] => 0
[player_status] => 1
[scriptedSpin] => PLG
[message_flag] => N
[gold_award] => 0

[player_id] => 70659
[mobile_number] => 09********
[name] => gorbani2
[password] => ******
[verification_code] => 22222
[subscription] => 0
[gold] => 147350
[date_joined] => 2011-04-26 20:02:40
[free_spin] => 0
[player_status] => 1
[scriptedSpin] => PLG
[message_flag] => N
[gold_award] => 0

等々..

私はこれを試しましたが、うまくいきません:

$sql = array(); 
foreach( $myarray as $row ) {
$sql[] = '('.$row['ID'].', "'.mysql_real_escape_string($row['NAME']).'","'.$row['PRICE'].'")';}
mysql_real_query('INSERT INTO table (ID, NAME,PRICE) VALUES '.implode(',', $sql));
4

1 に答える 1

1

連想配列を作成する場合は、次のようにします。

最初に SQL クエリを準備します。

$sql = "INSERT INTO ".$table." ("; 
for ($i=0; $i<count($arr); $i++)
{ 
  $sql .= key($arr); 
  if ($i < (count($arr)-1))
  { 
    $sql .= ", "; 
  } else $sql .= ") "; 
  next($arr); 
} 
reset($arr); 
$sql .= "VALUES ("; 
for ($j=0; $j<count($arr); $j++)
{ 
  $sql .= "'".current($arr)."'"; 
  if ($j < (count($arr)-1))
  { 
    $sql .= ", "; 
  } else $sql .= ") "; 
  next($arr); 
}

これで、SQL クエリが $sql に格納されたので、好みの方法でクエリを実行するだけです。

注: mysql_query は非推奨です。代わりに PDO などを使用する必要があります。

于 2012-10-25T14:07:17.747 に答える