Autor Zpráva
ondrej16556
Profil
Dobrý deň,
Robím zálohový skript ale keď používam zálohu nevymažú sa tabuľky takže sa nenahrajú nové dáta.
Používam tento skript:
	$query = "DROP TABLE budovy; DROP TABLE dedina; DROP TABLE lode; DROP TABLE obchod; DROP TABLE premium; DROP TABLE rebricek_ali; DROP TABLE rebricek_uz;
DROP TABLE spravy; DROP TABLE users; DROP TABLE vojaci; DROP TABLE vsetko; DROP TABLE vyskum_akademia; DROP TABLE vyskum_kovarna; DROP TABLE vsetky_budovy";
		mysql_query($query);

Ale stále mi to nefunguje. Poradíte mi prosím, v čom je chyba?
Shadowek
Profil
ono provádíš několik příkazů v jedinném ...
Nevím jak to přesně vysvětlit prostě to musíš rozdělit nejlepe pomocí středníků a pak postupně protáhnout přes query. Viděl bych to takto:
$vybuch = explode(";",$query);
$iterator = 0;
while($iterator <= count($vybuch)){
mysql_query($vybuch[$iterator]);
$iterator++;
}

Edit: Zapomněl jsem zvyšovat $iterator při pruchodu vyklem.
ondrej16556
Profil
A keď chcem databázu obnoviť?
Používam:
<?php
	require_once "../../db.php";
	$conn = mysql_connect($dbhost, $dbuser, $dbpass)
		or die("");
	mysql_select_db($_SESSION["server"]);
	
	$file = $_POST['subor'];
	$subor = "../../Zaloha/$file";
	if(File_Exists ("$subor")) {
		$fp = FOpen("$subor", "r+");
		$data = FRead ($fp, FileSize("$subor"));
		FClose($fp);
	}
	$query = "DROP TABLE budovy; DROP TABLE dedina; DROP TABLE lode; DROP TABLE obchod; DROP TABLE premium; DROP TABLE rebricek_ali; DROP TABLE rebricek_uz;
DROP TABLE spravy; DROP TABLE users; DROP TABLE vojaci; DROP TABLE vsetko; DROP TABLE vyskum_akademia; DROP TABLE vyskum_kovarna; DROP TABLE vsetky_budovy";
		mysql_query($query);
	$query = "$data";
		mysql_query($query);
	echo '<div class="text">Databáza bola úspešne obnovená.<br><a href="p_zaloha.php" class="odkazy">Späť</a></div>'
?>

Ale pri
$query = "$data";
to je tiež viac príkazov, lebo tento súbor obsahuje
-- phpMyAdmin SQL Dump
-- version 3.2.2
-- http://www.phpmyadmin.net
--
-- Hostiteľ: localhost
-- Vygenerované:: 19.Mar, 2010 - 20:15
-- Verzia serveru: 5.1.41
-- Verzia PHP: 5.2.10

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Databáza: `sbeta`
--

-- --------------------------------------------------------

--
-- Štruktúra tabuľky pre tabuľku `budovy`
--

CREATE TABLE IF NOT EXISTS `budovy` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(30) NOT NULL,
  `nazov` varchar(30) NOT NULL,
  `stupen` int(25) NOT NULL,
  `viac` int(60) DEFAULT NULL,
  `viac2` int(60) DEFAULT NULL,
  `nova` int(225) DEFAULT NULL,
  `koniec` int(225) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=107 ;

--
-- Sťahujem dáta pre tabuľku `budovy`
--

INSERT INTO `budovy` (`id`, `username`, `nazov`, `stupen`, `viac`, `viac2`, `nova`, `koniec`) VALUES
(1, 'Aaron', 'Hlavná budova', 3, NULL, NULL, NULL, NULL),
(105, 'krotem', 'Hlavná budova', 1, NULL, NULL, NULL, NULL),
(3, 'matfj', 'Hlavná budova', 6, NULL, NULL, NULL, NULL),
(89, 'opo32', 'Kovároa', 1, NULL, NULL, 1, 6),
(6, 'opo32', 'Farma', 4, NULL, NULL, 53, 58),
(7, 'opo32', 'Hlinená baoa', 3, NULL, NULL, 54, 59),
(8, 'matfj', 'Drevorubec', 3, NULL, NULL, 54, 59),
(9, 'Aaron', 'Drevorubec', 1, NULL, NULL, 54, 59),
(106, 'opo32', 'Hlavná budova', 6, NULL, NULL, NULL, NULL),
(11, 'opo32', 'Kameoolom', 3, NULL, NULL, 54, 59),
(12, 'Aaron', 'Kameoolom', 1, NULL, NULL, 54, 59),
(13, 'matfj', 'Kameoolom', 3, NULL, NULL, 55, 60),
(14, 'Ondrej', 'Hlavná budova', 4, NULL, NULL, NULL, NULL),
(15, 'Aaron', 'Ambasáda', 1, 3, NULL, 55, 60),
(16, 'Ondrej', 'Farma', 2, NULL, NULL, 56, 61),
(104, 'nikaaa', 'Hlavná budova', 1, NULL, NULL, NULL, NULL),
(18, 'Aaron', 'Farma', 1, NULL, NULL, 58, 63),
(19, 'matfj', 'Hlinená baoa', 3, NULL, NULL, 18, 23),
veľa príkazov pre obnovenie databáze.
Ako by som toto mohol spraviť?
Shadowek
Profil
Stejným způsobem jako jsem psal výše ...
AM_
Profil
Nebo použít mysqli knihovnu místo mysql a její funkci mysqli_multi_query, která umí poslat více dotazů oddělených středníkem přes jedno volání.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: