使用PHP从数据库导出/导入一些数据

使用PHP从数据库导出/导入一些数据,php,mysql,xampp,Php,Mysql,Xampp,我想从数据库中导出和导入,包括WHERE子句,以导出一些数据而不是全部数据,例如:导出numberID=25的所有数据表。那么,有可能做到这一点吗?如果可能的话,我如何导入这些数据?删除第一个以前的数据 我试图从我的数据库中导出它们,但它不起作用:我做错了什么?我和XAMPP一起工作。谢谢大家 <?php //ENTER THE RELEVANT INFO BELOW $mysqlDatabaseName ='myDatabase'; $mysqlUserName ='myUser';

我想从数据库中导出和导入,包括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);

?>

尽量不要使用mysqldump,它更像是一个管理/备份工具,据我所知,它只能导出整个表,但可以尝试使用带有WHERE子句的SELECT语句来读取数据。以您想要的文件格式导出,例如XML或CSV。要再次导入数据,请使用DELETE语句删除当前数据,同时应用WHERE子句并对输入文件中的每条记录使用INSERT语句。

如前所述,我不会使用mysqldump,而是使用select查询。 如上所述,您可以向mysqldump添加-where语句,如

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


此外,如果要在文档根目录中保存.sql文件,则需要检查权限。但是,让Apache用户可以编写文档根不是一个好主意。

如果您有一个表,如

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...
}
?>
这段代码是从我之前提供的链接中逐字提取的,我特别友好——绝大多数人不会给你一个链接,然后当你显然没有阅读它时,仍然会给你代码


查询可以扩展为“从ID=2的表中选择*”。当然,您仍然可以在PHP forloop中放入任何类型的HTML,以显示您想要的任何数据

因此,您试图使用的SQL语句在哪里?打开phpmyadmin,为您想要的任何行进行选择,并勾选底部的复选框“全部”,然后单击导出。使用“mysqldump”是不够的吗?我的sql语句必须在哪里?谢谢ChrisWThanks Kyslik,但我想使用php,因为用户无法访问phpmyadminAh,我不知道你对你想做的事情了解得这么少。你真的需要在MySQL/PHP上做一些谷歌搜索——请确保你使用的是PDO函数,而不是MySQL函数。请尝试一个教程,比如谢谢Matthias Wuttke,我会尝试的!您能告诉我一个如何以.xml或.sql格式导出查询的示例吗?谢谢@JuanAntonio-为什么你认为你需要导出你的查询?我知道我需要从我的查询中导出我的结果数据,并导入、读取存档。不是吗?不,一点也不。看看我的答案。