genau Posted January 29, 2009 Report Posted January 29, 2009 Esmu jauniņais PHP, varat palīdzet atrisināt vienu problēmu. Vēlos izveidot tabulu ar nosaukumu, kādā ir nosaukts lauks citā tabulā. Kods: .... $title= $_GET['title']; $sql = "CREATE TABLE $title ( `id` int(4) NOT NULL auto_increment, `name` varchar(65) NOT NULL default '', `email` varchar(65) NOT NULL default '', `comment` longtext NOT NULL, `datetime` varchar(65) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;"; ...... $result = mysql_query($sql,$connect); .... Šāds kods nedarbojas, esmu pagooglejis arī šādi kodi CREATE TABLE `$title`...;CREATE TABLE `($title)`...; CREATE TABLE `DBvārds`.$title nedarbojas.
bubu Posted January 29, 2009 Report Posted January 29, 2009 Tā noteikti nav pārbaude, uz ko tev jāskatās. Tev ir jāpārbauda tā CREATE kverija rezultātu ($result). Un ja rezultāts saka, ka ir kļūda, tad izvadi kļūdas paziņojumu (mysql_error).
marcis Posted January 29, 2009 Report Posted January 29, 2009 mysql_query($sql)or die(mysql_error());
genau Posted January 29, 2009 Author Report Posted January 29, 2009 izdeva šādu paziņojumu: "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 '( `id` int(4) NOT NULL auto_increment, `name` varchar(65) NOT ' at line 1" izpildot: ($title vietā a) "CREATE TABLE a ( `id` int(4) NOT NULL auto_increment, `name` varchar(65) NOT NULL default '', `email` varchar(65) NOT NULL default '', `comment` longtext NOT NULL, `datetime` varchar(65) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;"; query izpildās bez problēmām.
genau Posted January 29, 2009 Author Report Posted January 29, 2009 Lūdzu nevajag taisīt bezjēdzīgas QUOTEs man šada MySQL 5.0 versija
bubu Posted January 29, 2009 Report Posted January 29, 2009 Izdrukā kveriju (echo $sql) un pārbaudi tā sintaksi.
genau Posted January 29, 2009 Author Report Posted January 29, 2009 Izdrukā kveriju (echo $sql) un pārbaudi tā sintaksi. Laikam esmu stūlbs, bet kļūdu es neredzu CREATE TABLE ( `id` int(4) NOT NULL auto_increment, `name` varchar(65) NOT NULL default '', `email` varchar(65) NOT NULL default '', `comment` longtext NOT NULL, `datetime` varchar(65) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
bubu Posted January 29, 2009 Report Posted January 29, 2009 Kur tev tur ir pazudis tabulas nosaukums? CREATE TABLE te_jābūt_tabulas_nosaukumam ( ... kolonnas ...) Pārbaudi savu $title mainīgo.
genau Posted January 29, 2009 Author Report Posted January 29, 2009 paldies visiem par palīdzību, centos izmantot mainīgo kuram vēl nebiju piešķīris mainīgo. Vēl viens jautājums vai tabulas nosaukumam var piešķirt skaitli piem 1 vai 1-posts?
genau Posted January 29, 2009 Author Report Posted January 29, 2009 Lūdzu nevajag taisīt bezjēdzīgas QUOTEs Tāpat, likt pārbaudi pie ievades vai nelikt.
bubu Posted January 29, 2009 Report Posted January 29, 2009 Par kādu pārbaudi tu runā? Es tev prasu kāpēc tu gribi likt tabulai nosaukumu "1" vai "1-posts". Tas ļoti aizdomīgi izskatās pēc tā, ka tu nepareizi izmanto SQL datubāzi, jo man šķiet, ka tu taisi visparastāko 1:N relāciju starp divām tabulām līkā veidā.
Recommended Posts