Dobrý den,
nedávno jsem se pustil do programování v PHP 5. Prozatím šli všechny kapitoly dobře, ale nastala chyba, když jsem se dostal na část: Jak používat PHP společně s MySQL.
Studijní materiál: http://knihy.cpress.cz/php5-mysql-apache.html
Jelikož jsem bral databáze a SQL na střední škole, tak to pro mne nebyla španělská vesnice. Ale bod zlomu nastal, když jsem napsal pomocí knihy kód, ve kterém by se měli vytvořit tabulky spolu s databází.
První soubor se jmenuje vytvoritfilm.php
<?php
$spojeni = mysql_connect ("localhost", "bp5am", "bp5ampass") or
die ("Zkontrolujte prosím připojení k serveru");
//vytvoření hlavní databáze
$tvorba = mysql_query("CREATE DATABASE IF NOT EXIST moviesite")
or die(mysql_error());
//nastavit novou databázi jako pracovní
mysql_select_db("moviesite");
//vytvoření tabulky "movie"
$filmy = "CREATE TABLE movie (
movie_id int( 11 ) NOT NULL auto_increment,
movie_name varchar( 255 ) NOT NULL,
movie_type tinyint( 2 ) NOT NULL default 0,
movie_year int( 4 ) NOT NULL default 0,
movie_leadactor int( 11 ) NOT NULL default 0,
movie_director int( 11 ) NOT NULL default 0,
PRIMARY KEY ( movie_id ),
KEY movie_type ( movie_type, movie_year )
)";
$vysledky = mysql_query( $filmy ) or
die ( mysql_error());
//vytvořit tabulku "movietype"
$typyfilmu = "CREATE TABLE movietype (
movietype_id int( 11 ) NOT NULL auto_increment,
movietype_lable varchar( 100 ) NOT NULL,
PRIMARY KEY (movietype_id)
)";
$vysledky = mysql_query( $typyfilmu ) or
die( mysql_error());
//vytvořit tabulku "people"
$lide = "CREATE TABLE people (
people_id int( 11 ) NOT NULL auto_increment,
people_fullname varchar( 255 ) NOT NULL,
people_isactor tinyint( 1 ) NOT NULL default 0,
people_isdirector tinyint( 1 ) NOT NULL default 0,
PRIMARY KEY (people_id)
)";
$vysledky = mysql_query( $lide ) or
die (mysql_error());
echo "Databáze byla úspěšně vytvořena!";
?>
Druhý soubor se jmenuje filmovadata.php
<?php
$spojeni = mysql_connect ("localhost", "bp5am", "bp5ampass") or
die ("Zkontrolujte připojení k serveru");
//nastaveni pracovni databaze
mysql_select_db( "moviesite" );
//vložit data do tabulky movie
$vlozit = "INSERT INTO movie (movie_id, movie_name, movie_type, " .
"movie_year, movie_leadactor, movie_director ) " .
"VALUES ( 1, 'Božský Bruce', 5, 2003, 1, 2 ), " .
"( 2, 'Maléry pana Šikuly', 5, 1999, 5, 6 ), " .
"( 3, 'Grand Canyon', 2, 1991, 4, 3 ), ";
$vysledky = mysql_query( $vlozit ) or
die( mysql_error());
// Nové data do tabulky movietype
$typ = "INSERT INTO movietype (movitype_id, movietype_label ) " .
"VALUES ( 1, 'Sci-Fi' ), " .
"( 2, 'Drama' ), " .
"( 3, 'Dobrodružný' ), " .
"( 4, 'Válečný' ), " .
"( 5, 'Komedie' ), " .
"( 6, 'Horror' ), " .
"( 7, 'Akční' ), " .
"( 8, 'Dětský' )";
$vysledky = mysql_query( $typ ) or
die ( mysql_error() );
//Nové data do tabulky people
$lide = "INSERT INTO people ( people_id, people_fullname, " .
"people_isactor, people_isdirector ) " .
"VALUES ( 1, 'Jim Carrey', 1, 0 ), " .
"( 2, 'Tom Shadyac', 0, 1 ), " .
"( 3, 'Lawrence Kasdan', 0, 1 ), " .
"( 4, 'Kevin Kline', 1, 0 ), " .
"( 5, 'Ron Livingston', 1, 0 ), " .
"( 6, 'Mike Judge', 0, 1 )";
$vysledky = mysql_query( $lide )
or die ( mysql_error() );
echo "Vložení dat proběhlo úspěšně!";
?>
Když jsem spustil soubor vytvoritfilm.php (Používám WampServer v2.2). Hodilo to chybu:
Několikrát jsem kód kontroloval a nenacházel jsem nikde chybu. Napadlo mě pomocí Wampserveru najet na phpMyadmin a do seznamu uživatelů přidat uživatele bp5am.
Když jsem přidal uživatele do databáze, najednou se objevila zcela nová chybová hláška:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EXIST moviesite' at line 1
Nevíte někdo prosím co s tím? Zkoušel jsem i ručně vytvořit databázi moviesite a nadeklarovat tam všechny hodnoty, ale to s tím ani nehne... Budu moc rád za každou radu... Díky