Datenbankimport via PHP?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
code
datei
datenbank
datum
file
funktion
import
importieren
inhalt
management
not
null
panel
resultat
sache
senden
server
tabelle
text
verwenden
-
Hi,
ich habe eine .sqlite bzw. eine .sql Datei wo Sachen von einer Datenbank gespeichert sind:
CREATE TABLE {$db_prefix}attachments (
ID_ATTACH int(10) unsigned NOT NULL auto_increment,
und so weiter ...
Ich kann das ganze ja in phpMyAdmin importieren damit alle Sachen übernommen werden (so stehts auch in der Anleitung) Nur würde ich gern wissen ob man das ganze auch via PHP in die Datenbank importieren kann?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Öhm, PhpMyAdmin ist PHP. PhpMyAdmin liest die Datei ein und schickt dann die jeweiligen SQL Befehle an den SQL Server.
Du könntest der Einfachheit halber auch lokal einen MySQL Server installieren und dann die Datei über die MySQL Konsole übertragen.
-
Ich glaube die zweite Antwort ist die die ich gesucht habe. Sry, ich hab mich ungenau ausgedrückt, ich meinte natürlich via php-Script ohne mich in phpMyAdmin einloggen zu müssen.
Vielen Dank, ich versuchs gleich mal.
Habs so versucht, geht aber nicht: (dbhost, user ... sind richtig eingetragen)
<?php
mysql_connect("dbhost", "dbuser", "dbpw");
mysql_select_db("dbname");
$sqlfile = file("file.sql");
$resultat= mysql_query($sqlfile);
mysql_close();
?>
Beitrag zuletzt geändert: 23.9.2009 10:31:45 von melonenfans -
Oh es hiess nicht file() sonern fopen() also:
<?php
$dbhost = '*****';
$dbuser = '*****';
$dbpw = '*****';
$conn = mysql_connect($dbhost, $dbuser, $dbpw) ;
$dbname = '*****';
mysql_select_db($dbname);
$file = fopen ("file.sql", "r+");
mysql_query(file)
oder (hier bin ich mir nicht sicher, lange her das letzte Scripting mit php :P)
$resultat = mysql_query( file_get_contents( "sqlfile.sql" ) ); -
Also ich habs jetzt so gemacht:
<?php
mysql_connect($_POST['dbhost'], $_POST['dbuser'], $_POST['dbpass']);
mysql_select_db($_POST['dbname']);
$import = file_get_contents($sqlfile);
$import = preg_replace ("%/\*(.*)\*/%Us", '', $import);
$import = preg_replace ("%^--(.*)\n%mU", '', $import);
$import = preg_replace ("%^$\n%mU", '', $import);
mysql_real_escape_string($import);
$import = explode (";", $import);
foreach ($import as $imp){
if ($imp != '' && $imp != ' '){
mysql_query($imp);
}
}
mysql_close();
?>
Aber irgendwie werden nie alle Sachen in die Datenbank geschrieben. Gewisse Sachen bleiben außen vor. Binde ich sie per Hand in phpMyAdmin ein funktioniert alles, wie kann das sein? -
sirferguson schrieb:
Du musst zuerst deine sql datei einleen und diese dann via query an die MySQL Datenbank senden:
$sqlfile = file("file.sql");
$resultat= mysql_query($sqlfile);
Leider nicht ganz korrekt!
Du musst das so machen:
<? if (is_file("file.sql")) { $sqlfile = implode(" ", file("file.sql")); $result = mysql_query($sqlfile); if ($result) { echo "Datenbank import erfolgreich!"; } } else { die("Datei nicht vorhanden!"); }
Wenn du die file()-Funktion nimmst, wird der Inhalt als Array gespeichert (wie wenn du bei einem string die funktion explode() verwendest). Die einzelnen Array-Daten musst du mit implode() wieder zusammen fürgen. -
Nein, das darf man nicht. Schreib ihn doch einfach selber, das ist außerdem einfacher, als fremden Code zu verwenden, bei dem man nicht durchblickt
-
Hab ich ja versucht und schon gepostet, aber es werden nicht alle Tabellen angelegt.
<?php
mysql_connect($_POST['dbhost'], $_POST['dbuser'], $_POST['dbpass']);
mysql_select_db($_POST['dbname']);
$import = file_get_contents($sqlfile);
$import = preg_replace ("%/\*(.*)\*/%Us", '', $import);
$import = preg_replace ("%^--(.*)\n%mU", '', $import);
$import = preg_replace ("%^$\n%mU", '', $import);
mysql_real_escape_string($import);
$import = explode (";", $import);
foreach ($import as $imp){
if ($imp != '' && $imp != ' '){
mysql_query($imp);
}
}
mysql_close();
?>
Hab ich da einen Fehler drin? Ich kann keinen entdecken. -
was soll denn dieses preg_replace()?
das brauchst du doch nicht!
kannst du mal den Inhalt der sql-datei posten? oder, wenn er zu groß ist, auf andere weise mitteilen? -
Ähm ich weiß nicht mehr warum ich das preg_replace Zeugs reingemacht habe, aber selbst wenn ichs weglasse gehts nicht. Es werden alle Tabellen angelegt bis auf die _settings. Die wird zwar angelegt, aber sie ist leer, die Unterpunkte wie site_name oder site_email werden nicht angelegt. Hier der Inhalt der .sql:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Tabellenstruktur für Tabelle `4images_categories`
--
CREATE TABLE IF NOT EXISTS `4images_categories` (
`cat_id` int(10) unsigned NOT NULL auto_increment,
`cat_name` varchar(255) NOT NULL default '',
`cat_description` text NOT NULL,
`cat_parent_id` int(10) unsigned NOT NULL default '0',
`cat_hits` int(10) unsigned NOT NULL default '0',
`cat_order` int(10) unsigned NOT NULL default '0',
`auth_viewcat` tinyint(2) NOT NULL default '0',
`auth_viewimage` tinyint(2) NOT NULL default '0',
`auth_download` tinyint(2) NOT NULL default '0',
`auth_upload` tinyint(2) NOT NULL default '0',
`auth_directupload` tinyint(2) NOT NULL default '0',
`auth_vote` tinyint(2) NOT NULL default '0',
`auth_sendpostcard` tinyint(2) NOT NULL default '0',
`auth_readcomment` tinyint(2) NOT NULL default '0',
`auth_postcomment` tinyint(2) NOT NULL default '0',
PRIMARY KEY (`cat_id`),
KEY `cat_parent_id` (`cat_parent_id`),
KEY `cat_order` (`cat_order`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Daten für Tabelle `4images_categories`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `4images_comments`
--
CREATE TABLE IF NOT EXISTS `4images_comments` (
`comment_id` int(10) unsigned NOT NULL auto_increment,
`image_id` int(10) unsigned NOT NULL default '0',
`user_id` int(11) NOT NULL default '0',
`user_name` varchar(100) NOT NULL default '',
`comment_headline` varchar(255) NOT NULL default '',
`comment_text` text NOT NULL,
`comment_ip` varchar(20) NOT NULL default '',
`comment_date` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`comment_id`),
KEY `image_id` (`image_id`),
KEY `user_id` (`user_id`),
KEY `comment_date` (`comment_date`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Daten für Tabelle `4images_comments`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `4images_groupaccess`
--
CREATE TABLE IF NOT EXISTS `4images_groupaccess` (
`group_id` int(10) unsigned NOT NULL default '0',
`cat_id` int(10) unsigned NOT NULL default '0',
`auth_viewcat` tinyint(1) NOT NULL default '0',
`auth_viewimage` tinyint(1) NOT NULL default '0',
`auth_download` tinyint(1) NOT NULL default '0',
`auth_upload` tinyint(1) NOT NULL default '0',
`auth_directupload` tinyint(1) NOT NULL default '0',
`auth_vote` tinyint(1) NOT NULL default '0',
`auth_sendpostcard` tinyint(1) NOT NULL default '0',
`auth_readcomment` tinyint(1) NOT NULL default '0',
`auth_postcomment` tinyint(1) NOT NULL default '0',
KEY `group_id` (`group_id`),
KEY `cat_id` (`cat_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Daten für Tabelle `4images_groupaccess`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `4images_groupmatch`
--
CREATE TABLE IF NOT EXISTS `4images_groupmatch` (
`group_id` int(10) unsigned NOT NULL default '0',
`user_id` int(11) NOT NULL default '0',
`groupmatch_startdate` int(11) unsigned NOT NULL default '0',
`groupmatch_enddate` int(11) unsigned NOT NULL default '0',
KEY `group_id` (`group_id`),
KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Daten für Tabelle `4images_groupmatch`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `4images_groups`
--
CREATE TABLE IF NOT EXISTS `4images_groups` (
`group_id` int(10) unsigned NOT NULL auto_increment,
`group_name` varchar(100) NOT NULL default '',
`group_type` tinyint(2) NOT NULL default '1',
PRIMARY KEY (`group_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Daten für Tabelle `4images_groups`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `4images_images`
--
CREATE TABLE IF NOT EXISTS `4images_images` (
`image_id` int(10) unsigned NOT NULL auto_increment,
`cat_id` int(10) unsigned NOT NULL default '0',
`user_id` int(11) NOT NULL default '0',
`image_name` varchar(255) NOT NULL default '',
`image_description` text NOT NULL,
`image_keywords` text NOT NULL,
`image_date` int(11) unsigned NOT NULL default '0',
`image_active` tinyint(1) NOT NULL default '1',
`image_media_file` varchar(255) NOT NULL default '',
`image_thumb_file` varchar(255) NOT NULL default '',
`image_download_url` varchar(255) NOT NULL default '',
`image_allow_comments` tinyint(1) NOT NULL default '1',
`image_comments` int(10) unsigned NOT NULL default '0',
`image_downloads` int(10) unsigned NOT NULL default '0',
`image_votes` int(10) unsigned NOT NULL default '0',
`image_rating` decimal(4,2) NOT NULL default '0.00',
`image_hits` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`image_id`),
KEY `cat_id` (`cat_id`),
KEY `user_id` (`user_id`),
KEY `image_date` (`image_date`),
KEY `image_active` (`image_active`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Daten für Tabelle `4images_images`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `4images_images_temp`
--
CREATE TABLE IF NOT EXISTS `4images_images_temp` (
`image_id` int(10) unsigned NOT NULL auto_increment,
`cat_id` int(10) unsigned NOT NULL default '0',
`user_id` int(11) NOT NULL default '0',
`image_name` varchar(255) NOT NULL default '',
`image_description` text NOT NULL,
`image_keywords` text NOT NULL,
`image_date` int(11) unsigned NOT NULL default '0',
`image_media_file` varchar(255) NOT NULL default '',
`image_thumb_file` varchar(255) NOT NULL default '',
`image_download_url` varchar(255) NOT NULL default '',
PRIMARY KEY (`image_id`),
KEY `cat_id` (`cat_id`),
KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Daten für Tabelle `4images_images_temp`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `4images_lightboxes`
--
CREATE TABLE IF NOT EXISTS `4images_lightboxes` (
`lightbox_id` varchar(32) NOT NULL default '',
`user_id` int(11) NOT NULL default '0',
`lightbox_lastaction` int(11) unsigned NOT NULL default '0',
`lightbox_image_ids` text,
KEY `lightbox_id` (`lightbox_id`),
KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Daten für Tabelle `4images_lightboxes`
--
INSERT INTO `4images_lightboxes` (`lightbox_id`, `user_id`, `lightbox_lastaction`, `lightbox_image_ids`) VALUES
('0251eab97e688ef0244e3f14d80c4dd9', 1, 1253890276, '');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `4images_postcards`
--
CREATE TABLE IF NOT EXISTS `4images_postcards` (
`postcard_id` varchar(32) NOT NULL default '',
`image_id` int(10) unsigned NOT NULL default '0',
`postcard_date` int(11) unsigned NOT NULL default '0',
`postcard_bg_color` varchar(100) NOT NULL default '',
`postcard_border_color` varchar(100) NOT NULL default '',
`postcard_font_color` varchar(100) NOT NULL default '',
`postcard_font_face` varchar(100) NOT NULL default '',
`postcard_sender_name` varchar(255) NOT NULL default '',
`postcard_sender_email` varchar(255) NOT NULL default '',
`postcard_recipient_name` varchar(255) NOT NULL default '',
`postcard_recipient_email` varchar(255) NOT NULL default '',
`postcard_headline` varchar(255) NOT NULL default '',
`postcard_message` text NOT NULL,
PRIMARY KEY (`postcard_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Daten für Tabelle `4images_postcards`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `4images_sessions`
--
CREATE TABLE IF NOT EXISTS `4images_sessions` (
`session_id` varchar(32) NOT NULL default '',
`session_user_id` int(11) NOT NULL default '0',
`session_lastaction` int(11) unsigned NOT NULL default '0',
`session_location` varchar(255) NOT NULL default '',
`session_ip` varchar(15) NOT NULL default '',
PRIMARY KEY (`session_id`),
KEY `session_user_id` (`session_user_id`),
KEY `session_id_ip_user_id` (`session_id`,`session_ip`,`session_user_id`)
) ENGINE=MEMORY DEFAULT CHARSET=latin1;
--
-- Daten für Tabelle `4images_sessions`
--
INSERT INTO `4images_sessions` (`session_id`, `session_user_id`, `session_lastaction`, `session_location`, `session_ip`) VALUES
('peohj3ukf694m3gbo9r6h83nn4', -1, 1253890519, 'Control Panel', '91.11.82.62');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `4images_sessionvars`
--
CREATE TABLE IF NOT EXISTS `4images_sessionvars` (
`session_id` varchar(32) NOT NULL default '',
`sessionvars_name` varchar(30) NOT NULL default '',
`sessionvars_value` text,
KEY `session_id` (`session_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Daten für Tabelle `4images_sessionvars`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `4images_settings`
--
CREATE TABLE IF NOT EXISTS `4images_settings` (
`setting_name` varchar(255) NOT NULL default '',
`setting_value` mediumtext NOT NULL,
PRIMARY KEY (`setting_name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Daten für Tabelle `4images_settings`
--
INSERT INTO `4images_settings` (`setting_name`, `setting_value`) VALUES
('site_name', '4images - Image Gallery Management System'),
('site_email', 'admin@yourdomain.com'),
('use_smtp', '0'),
('smtp_host', ''),
('smtp_username', ''),
('smtp_password', ''),
('template_dir', 'default'),
('language_dir', 'deutsch'),
('date_format', 'd.m.Y'),
('time_format', 'H:i'),
('convert_tool', 'gd'),
('convert_tool_path', ''),
('gz_compress', '0'),
('gz_compress_level', '6'),
('cat_cells', '2'),
('cat_table_width', '100%'),
('cat_table_cellspacing', '1'),
('cat_table_cellpadding', '3'),
('num_subcats', '3'),
('image_order', 'image_name'),
('image_sort', 'ASC'),
('new_cutoff', '10'),
('image_border', '1'),
('image_cells', '3'),
('default_image_rows', '3'),
('custom_row_steps', '10'),
('image_table_width', '100%'),
('image_table_cellspacing', '1'),
('image_table_cellpadding', '3'),
('upload_mode', '2'),
('allowed_mediatypes', 'jpg,gif,png,aif,au,avi,mid,mov,mp3,mpg,swf,wav,ra,rm,zip,pdf'),
('max_thumb_width', '300'),
('max_thumb_height', '300'),
('max_thumb_size', '100'),
('max_image_width', '1024'),
('max_image_height', '1024'),
('max_media_size', '2000'),
('upload_notify', '0'),
('upload_emails', ''),
('auto_thumbnail', '1'),
('auto_thumbnail_dimension', '100'),
('auto_thumbnail_resize_type', '1'),
('auto_thumbnail_quality', '75'),
('badword_list', 'fuck {fuck}'),
('badword_replace_char', '*'),
('wordwrap_comments', '50'),
('html_comments', '0'),
('bb_comments', '1'),
('bb_img_comments', '0'),
('category_separator', ' / '),
('paging_range', '5'),
('user_edit_image', '1'),
('user_delete_image', '1'),
('user_edit_comments', '1'),
('user_delete_comments', '1'),
('account_activation', '1'),
('activation_time', '14'),
('session_timeout', '15'),
('display_whosonline', '1'),
('highlight_admin', '1');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `4images_users`
--
CREATE TABLE IF NOT EXISTS `4images_users` (
`user_id` int(11) NOT NULL auto_increment,
`user_level` int(11) NOT NULL default '1',
`user_name` varchar(255) NOT NULL default '',
`user_password` varchar(255) NOT NULL default '',
`user_email` varchar(255) NOT NULL default '',
`user_showemail` tinyint(1) NOT NULL default '0',
`user_allowemails` tinyint(1) NOT NULL default '1',
`user_invisible` tinyint(1) NOT NULL default '0',
`user_joindate` int(11) unsigned NOT NULL default '0',
`user_activationkey` varchar(32) NOT NULL default '',
`user_lastaction` int(11) unsigned NOT NULL default '0',
`user_location` varchar(255) NOT NULL default '',
`user_lastvisit` int(11) unsigned NOT NULL default '0',
`user_comments` int(10) unsigned NOT NULL default '0',
`user_homepage` varchar(255) NOT NULL default '',
`user_icq` varchar(20) NOT NULL default '',
PRIMARY KEY (`user_id`),
KEY `user_lastaction` (`user_lastaction`),
KEY `user_name` (`user_name`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Daten für Tabelle `4images_users`
--
INSERT INTO `4images_users` (`user_id`, `user_level`, `user_name`, `user_password`, `user_email`, `user_showemail`, `user_allowemails`, `user_invisible`, `user_joindate`, `user_activationkey`, `user_lastaction`, `user_location`, `user_lastvisit`, `user_comments`, `user_homepage`, `user_icq`) VALUES
(-1, -1, 'Guest', '0493984f537120be0b8d96bc9b69cdd2', '', 0, 0, 0, 0, '', 0, '', 0, 0, '', ''),
(1, 9, 'Username_Username', 'Pass_Pass', 'admin@yourdomain.com', 1, 1, 0, 1253890272, '1e3457c0b2052a9633b886fd75ef91e0', 1253890519, 'Control Panel', 1253890272, 0, '', '');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `4images_wordlist`
--
CREATE TABLE IF NOT EXISTS `4images_wordlist` (
`word_text` varchar(50) NOT NULL default '',
`word_id` int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (`word_id`),
UNIQUE KEY `word_text` (`word_text`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Daten für Tabelle `4images_wordlist`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `4images_wordmatch`
--
CREATE TABLE IF NOT EXISTS `4images_wordmatch` (
`image_id` int(10) unsigned NOT NULL default '0',
`word_id` int(10) unsigned NOT NULL default '0',
`name_match` tinyint(1) NOT NULL default '0',
`desc_match` tinyint(1) NOT NULL default '0',
`keys_match` tinyint(1) NOT NULL default '0',
UNIQUE KEY `image_word_id` (`image_id`,`word_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Daten für Tabelle `4images_wordmatch`
--
-
INSERT INTO `4images_settings` (`setting_name`, `setting_value`) VALUES ('site_name', '4images - Image Gallery Management System'), ('site_email', 'admin@yourdomain.com'), ('use_smtp', '0'), ('smtp_host', ''), ('smtp_username', ''), ('smtp_password', ''), ('template_dir', 'default'), ... ('image_border', '1'), ('image_cells', '3'), ('auto_thumbnail_dimension', '100'), ('highlight_admin', '1');
Was soll denn das sein? SQL ist es nicht! Föllig falsch, kein Wunder, das es nicht funktioniert! Schau dir mal den Code der anderen Tabellen an! -
Ich hab die DB so gesichert und hab selber nix dran verändert, phpMyAdmin hat mir diese Datei fertig ausgeworfen. Könnte das auch ein Fehler von phpMyAdmin selber sein?
-
Ach ne, sorry, war grad ein Denkfehler von mir!
Du hast da eine Tabellenzeile exportiert, wo aber kein Inhalt, bzw nur Leerzeichen drinn waren. Wenn du den Inhalt wieder in deiner DB haben willst, wäre es besser, ihn manuell reinzuschreiben. -
lol, dann gehts ja aber das weiß ich ja bereits. Drum ja meine Frage ob man den Einbindebefehl von phpMyAdmin nicht irgendwie isolieren kann damit es diesen Code in meiner PHP Datei verwende ^^ Verstehst du jetzt das Problem?
-
phpMyAdmin ist GPL lizensiert, du darfst also gerne den Sourcecode durchwühlen und dir was du brauchst rauskopieren.
http://en.wikipedia.org/wiki/PhpMyAdmin -
Das ist schon mal gut, aber wo finde ich jetzt das was ich suche?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage