-1

WHERE 句を含め、データベースからエクスポートおよびインポートして、すべてではなく一部のデータをエクスポートしたい (例: numberID = 25 のすべてのデータ テーブルをエクスポートする)。それで、それは可能ですか?そして、可能であれば、どうすればそれらのデータをインポートできますか? 最初の以前のデータを削除しますか?

データベースからエクスポートしようとしましたが、うまくいきません。私はXAMPPで作業しています。全てに感謝!

<?php

//ENTER THE RELEVANT INFO BELOW
$mysqlDatabaseName ='myDatabase';
$mysqlUserName ='myUser';
$mysqlPassword ='myPass';
$mysqlExportPath =$_SERVER['DOCUMENT_ROOT'] . '/backup.sql';
$mysqlHostName ='localhost';

$command='mysqldump --opt -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' > ' .$mysqlExportPath;
exec($command);

?>
4

3 に答える 3

2

mysqldump を使用しないようにしてください (管理/バックアップ ツールに似ており、私の知る限り、テーブル全体をエクスポートすることしかできません)。ただし、データを読み取るための WHERE 句を含む SELECT ステートメントを試してください。XML または CSV など、希望するファイル形式でエクスポートします。データを再度インポートするには、現在のデータを削除するために DELETE ステートメントを使用し (WHERE 句も適用します)、入力ファイルの各レコードに対して INSERT ステートメントを使用します。

于 2013-09-20T10:02:51.083 に答える
1

次のようなテーブルがある場合

ID | COL1 | COL 2
-----------------
 1 |  A1  |  A2
 2 |  B1  |  B2

テーブル全体を表示するには、次の PHP コードを使用します。

<?php
$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');

foreach($db->query('SELECT * FROM table') as $row) {
    echo $row['field1'].' '.$row['field2']; //etc...
}
?>

このコードは、以前に提供したリンクからそのまま引用したものです (私は特に親切です。大多数の人はリンクを提供しませんが、明らかにそれを読んでいなくてもコードを提供します...) .

クエリは、 などに拡張できます'SELECT * FROM table WHERE ID=2'。もちろん、任意の種類の HTML を PHP に配置forloopして、必要に応じてデータを表示することもできます。

于 2013-09-20T10:39:53.787 に答える
0

すでに述べたようにmysqldumpselectクエリ以外は使用しません。MySQLのドキュメントで説明されているように、--whereステートメントを追加できると言ったmysqldump

mysqldump -t -u [username] -p[password] [database] [table] --where=[statement]

また、.sql ファイルをドキュメント ルートに保存しようとしている場合は、権限を確認する必要があります。ただし、ドキュメント ルートを Apache ユーザーが書き込み可能にすることはお勧めできません。

于 2013-09-20T10:13:27.580 に答える