PHP: экспортировать таблицу из базы данных с помощью mysqldump ⇐ Php
PHP: экспортировать таблицу из базы данных с помощью mysqldump
Я не могу экспортировать таблицу MariaDB с помощью PHP с помощью mysqldump. Мой код такой:
function sqlTable($tableName, $username, $password, $database) { $command = "mysqldump -u $username -p'$password' $database $tableName 2>&1"; $выход = []; exec($команда, $выход); $outputString = implode("\n", $output); вернуть json_encode($outputString); } Эта функция возвращает мне таблицу с большим количеством информации, а также данные.
Но когда я загружаю файл и пытаюсь его импортировать, у меня появляется много ошибок. Это правильный способ экспорта таблицы или я в чем-то ошибся?
Огромное спасибо!
Мой окончательный файл sql:
"--MariaDBdump10.19Distrib10.6.12-MariaDB,fordebian-linux-gnu(x86_64)\n--\n--Host:localhostDatabase:database\n---------- ---------------------------------------------\n-- Версия сервера\t10.6.12-MariaDB-0ubuntu0.22.04.1\n\n\/*!40101SET@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT*\/;\n\/*!40101SET@OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS*\/;\ n\/*!40101SET@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION*\/;\n\/*!40101SETNAMESutf8mb4*\/;\n\/*!40103SET@OLD_TIME_ZONE=@@TIME_ZONE*\/;\n\/*! 40103SETTIME_ZONE='+00:00'*\/;\n\/*!40014SET@OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS,UNIQUE_CHECKS=0*\/;\n\/*!40014SET@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,FOREIGN_KEY_CHECKS =0 *\/;\n\/*!40101SET@OLD_SQL_MODE=@@SQL_MODE,SQL_MODE='NO_AUTO_VALUE_ON_ZERO'*\/;\n\/*!40111SET@OLD_SQL_NOTES=@@SQL_NOTES,SQL_NOTES=0*\/;\n \n--\n--Tablestructurefortable`aa`\n--\n\nDROPTABLEIFEXISTS`aa`;\n\/*!40101SET@saved_cs_client=@@character_set_client*\/;\n\/*!40101SETcharacter_set_client=utf8 *\/;\nCREATETABLE`aa`(\n`id`int(11)NOTNULLAUTO_INCREMENT,\n`bb`varchar(200)NOTNULLCOMMENT'generale',\n`prova1`varchar(200)NOTNULLCOMMENT'altri',\ n`prova2`varchar(200)NOTNULLCOMMENT'generale',\n`trottola`varchar(200)NOTNULLCOMMENT'general',\n`datas`dateDEFAULTNULLCOMMENT'altri',\n`nota`textNOTNULLCOMMENT'Signature',\n` datacreazione`dateDEFAULTNULLCOMMENT'Signature',\n`autoremodifica`varchar(200)NOTNULLCOMMENT'Signature',\n`datamodifica`dateDEFAULTNULLCOMMENT'Signature',\n`autoremodifica`varchar(200)NOTNULLCOMMENT'Signature',\n`aav` varchar(200)NOTNULL,\nPRIMARYKEY(`id`)\n)ENGINE=InnoDBAUTO_INCREMENT=61DEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_general_ci;\n\/*!40101SETcharacter_set_client=@saved_cs_client*\/;\n\n--\n-- Dumpingdatafortable`aa`\n--\n\nLOCKTABLES`aa`WRITE;\n\/*!40000ALTERTABLE`aa`DISABLEKEYS*\/;\nINSERTINTO`aa`VALUES(57,'','','', 'primo','0000-00-00','','2023-09-30','vv','0000-00-00','','169609795622861500487922'),(58,'',' ','','primo','0000-00-00','','2023-09-30','vv','0000-00-00','','169609795622861500487922'),(59 ,'','','','primo','0000-00-00','','2023-09-30','vv','0000-00-00','','169609795622861500487922 '),(60,'','','','primo','0000-00-00','','2023-09-30','vv','0000-00-00', '','169609795622861500487922');\n\/*!40000ALTERTABLE`aa`ENABLEKEYS*\/;\nUNLOCKTABLES;\n\/*!40103SETTIME_ZONE=@OLD_TIME_ZONE*\/;\n\n\/*!40101SETSQL_MODE= @OLD_SQL_MODE*\/;\n\/*!40014SETFOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS*\/;\n\/*!40014SETUNIQUE_CHECKS=@OLD_UNIQUE_CHECKS*\/;\n\/*!40101SETCHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLI ЛОР*\/;\n \/*! 40101SetchAracter_Set_Results =@old_character_set_results*\/; \ n \/*! 40101SetCollation_Connection =@old_collation_connection*\/; \ n \/*! 199:53:59" Когда я пытаюсь импортировать файл с созданным мной возвратом, вот результат:
рядом с «MariaDBdump10» в позиции 2) Неожиданное начало высказывания. (рядом с «19Distrib10» в позиции 16) Неожиданное начало высказывания. (около «.6» в позиции 27) Неожиданное начало высказывания. (около «.12» в позиции 29) Неожиданное начало высказывания. (около «MariaDB» на позиции 33) Неожиданное начало высказывания. (рядом с «fordebian» на позиции 41) Неожиданное начало высказывания. (рядом с «Linux» на позиции 51)
Я не могу экспортировать таблицу MariaDB с помощью PHP с помощью mysqldump. Мой код такой:
function sqlTable($tableName, $username, $password, $database) { $command = "mysqldump -u $username -p'$password' $database $tableName 2>&1"; $выход = []; exec($команда, $выход); $outputString = implode("\n", $output); вернуть json_encode($outputString); } Эта функция возвращает мне таблицу с большим количеством информации, а также данные.
Но когда я загружаю файл и пытаюсь его импортировать, у меня появляется много ошибок. Это правильный способ экспорта таблицы или я в чем-то ошибся?
Огромное спасибо!
Мой окончательный файл sql:
"--MariaDBdump10.19Distrib10.6.12-MariaDB,fordebian-linux-gnu(x86_64)\n--\n--Host:localhostDatabase:database\n---------- ---------------------------------------------\n-- Версия сервера\t10.6.12-MariaDB-0ubuntu0.22.04.1\n\n\/*!40101SET@OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT*\/;\n\/*!40101SET@OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS*\/;\ n\/*!40101SET@OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION*\/;\n\/*!40101SETNAMESutf8mb4*\/;\n\/*!40103SET@OLD_TIME_ZONE=@@TIME_ZONE*\/;\n\/*! 40103SETTIME_ZONE='+00:00'*\/;\n\/*!40014SET@OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS,UNIQUE_CHECKS=0*\/;\n\/*!40014SET@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,FOREIGN_KEY_CHECKS =0 *\/;\n\/*!40101SET@OLD_SQL_MODE=@@SQL_MODE,SQL_MODE='NO_AUTO_VALUE_ON_ZERO'*\/;\n\/*!40111SET@OLD_SQL_NOTES=@@SQL_NOTES,SQL_NOTES=0*\/;\n \n--\n--Tablestructurefortable`aa`\n--\n\nDROPTABLEIFEXISTS`aa`;\n\/*!40101SET@saved_cs_client=@@character_set_client*\/;\n\/*!40101SETcharacter_set_client=utf8 *\/;\nCREATETABLE`aa`(\n`id`int(11)NOTNULLAUTO_INCREMENT,\n`bb`varchar(200)NOTNULLCOMMENT'generale',\n`prova1`varchar(200)NOTNULLCOMMENT'altri',\ n`prova2`varchar(200)NOTNULLCOMMENT'generale',\n`trottola`varchar(200)NOTNULLCOMMENT'general',\n`datas`dateDEFAULTNULLCOMMENT'altri',\n`nota`textNOTNULLCOMMENT'Signature',\n` datacreazione`dateDEFAULTNULLCOMMENT'Signature',\n`autoremodifica`varchar(200)NOTNULLCOMMENT'Signature',\n`datamodifica`dateDEFAULTNULLCOMMENT'Signature',\n`autoremodifica`varchar(200)NOTNULLCOMMENT'Signature',\n`aav` varchar(200)NOTNULL,\nPRIMARYKEY(`id`)\n)ENGINE=InnoDBAUTO_INCREMENT=61DEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_general_ci;\n\/*!40101SETcharacter_set_client=@saved_cs_client*\/;\n\n--\n-- Dumpingdatafortable`aa`\n--\n\nLOCKTABLES`aa`WRITE;\n\/*!40000ALTERTABLE`aa`DISABLEKEYS*\/;\nINSERTINTO`aa`VALUES(57,'','','', 'primo','0000-00-00','','2023-09-30','vv','0000-00-00','','169609795622861500487922'),(58,'',' ','','primo','0000-00-00','','2023-09-30','vv','0000-00-00','','169609795622861500487922'),(59 ,'','','','primo','0000-00-00','','2023-09-30','vv','0000-00-00','','169609795622861500487922 '),(60,'','','','primo','0000-00-00','','2023-09-30','vv','0000-00-00', '','169609795622861500487922');\n\/*!40000ALTERTABLE`aa`ENABLEKEYS*\/;\nUNLOCKTABLES;\n\/*!40103SETTIME_ZONE=@OLD_TIME_ZONE*\/;\n\n\/*!40101SETSQL_MODE= @OLD_SQL_MODE*\/;\n\/*!40014SETFOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS*\/;\n\/*!40014SETUNIQUE_CHECKS=@OLD_UNIQUE_CHECKS*\/;\n\/*!40101SETCHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLI ЛОР*\/;\n \/*! 40101SetchAracter_Set_Results =@old_character_set_results*\/; \ n \/*! 40101SetCollation_Connection =@old_collation_connection*\/; \ n \/*! 199:53:59" Когда я пытаюсь импортировать файл с созданным мной возвратом, вот результат:
рядом с «MariaDBdump10» в позиции 2) Неожиданное начало высказывания. (рядом с «19Distrib10» в позиции 16) Неожиданное начало высказывания. (около «.6» в позиции 27) Неожиданное начало высказывания. (около «.12» в позиции 29) Неожиданное начало высказывания. (около «MariaDB» на позиции 33) Неожиданное начало высказывания. (рядом с «fordebian» на позиции 41) Неожиданное начало высказывания. (рядом с «Linux» на позиции 51)
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Запустите Mysqldump через php exec (), труба в Gzip, вернуть mysqldump stderr
Anonymous » » в форуме Php - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Использует ли PhpMyAdmin команду `mysqldump` за кулисами при экспорте базы данных SQL?
Anonymous » » в форуме MySql - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-