Maison > Questions et réponses > le corps du texte
Comment exporter certaines lignes d'une table MySQL en utilisant la clause Where du script PHP ?
J'ai un test MySQL et je souhaite utiliser un script PHP pour créer un fichier .sql importable pour les lignes avec des identifiants compris entre 10 et 100.
Je souhaite créer un fichier SQL test.sql qui peut être importé dans la base de données MySQL.
Mon code :
$con=mysqli_connect("localhost", "root","","mydatabase"); $tableName = 'test'; $backupFile = '/opt/lampp/htdocs/practices/phpTest/test.sql'; $query = "SELECT * INTO OUTFILE '$backupFile' FROM $tableName WHERE id BETWEEN 10 AND 500"; $result = mysqli_query($con,$query);
Cela crée un fichier test.sql mais lorsque j'essaie d'importer, il donne l'erreur #1064.
Mon script crée simplement un fichier avec des lignes contenant les noms de colonnes et la structure de la table ou une requête d'insertion.
P粉2773052122023-10-22 11:09:44
Accédez à votre phpMyAdmin de manière très simple Sélectionnez la base de données dont vous souhaitez exporter les lignes spécifiques Cliquez sur SQL (exécutez une requête SQL sur la base de données) Écrivez une requête SQL et exécutez-la Tout comme select * from test table limit 500, quel sera le résultat maintenant ? Il suffit de voir « Opération de résultat de requête » en bas Cliquez simplement sur Exporter
Tout est fait :-)
P粉6768214902023-10-22 10:31:41
Comme mentionné dans les commentaires, vous pouvez utiliser mysqldump des manières suivantes.
mysqldump --user=... --password=... --host=... DB_NAME --where=<YOUR CLAUSE> > /path/to/output/file.sql
Si vous souhaitez qu'il apparaisse dans votre fichier php, vous pouvez procéder comme suit
exec('mysqldump --user=... --password=... --host=... DB_NAME --where=<YOUR CLAUSE> > /path/to/output/file.sql');