mysql_query ("CREATE TABLE $tunnus (tunnus TEXT, salasana TEXT, sposti TEXT, nimi TEXT, kaupunki TEXT)", $yhteys) or die("Taulun luominen ei onnistunut.");
Tuo kohta koodista aina "kuolee", enkä kyllä enää keksi mitään missä voisi vika olla.
Nyt en voi olla satavarma, mutta jotenkin muistelisin että noiden pitäisi olla eripäin, siis TEXT tunnus, TEXT salasana... Muutenkin käyttäisin noille ehkä VARCHAR-tyyppiä.
Jos ei toimi vielä näinkään, suosittelisin muuttamaan rivin lopun muotoon
or die( "Virhe: " . mysql_error() );
Ei auttanut:
Virhe: 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 'VARCHAR tunnus, VARCHAR salasana, VARCHAR sposti, VARCHAR nimi, VARCHAR kaupunki' at line 1
Varcharien kanssa täytyy ilmoittaa kentän pituus: VARCHAR(9) tunnus, VARCHAR(16) salasana... tjsp.
Virhe: 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 'Mämmelä (VARCHAR(24) tunnus, VARCHAR(24) salasana, VARCHAR(24) sposti, VARCHAR' at line 1
Katsopa vaikka tuolta mallia: http://www.w3schools.com/sql/sql_create.asp
Tuon mukaan sen pitäisi olla näin:
CREATE TABLE $tunnus ( tunnus varchar(24), salasana varchar, sposti varchar, nimi varchar, kaupunki varchar ), $yhteys) or die( "Virhe: " . mysql_error() );
Mutta ei toimi.
Sinun pitää määritellä ne kenttien pituudet aivan kuten tkarkkainen ylempänä totesi. Tuo antamani linkki oli ehkä vähän harhaan johtava, mutta se käsitteleekin sql -kielen syntaksia yleisesti eikä vain mysql:n kannalta.
Arghghzkldghzådkgfh
Eikö joku voi kertoa miten tuo koko höskä tulee millilleen?? Mä en millään jaksais arvailla koko päivää tuota syntaxia epämääräisten vihjausten avulla... :(
EDIT: Olen siis taas päätynyt alkuperäiseen mutooon "mysql_query("CREATE TABLE $tunnus (tunnus varchar(24), salasana varchar(24), sposti varchar(24), nimi varchar(24), kaupunki varchar(24))"), $yhteys) or die( "Virhe: " . mysql_error() );"
CREATE TABLE xxx ( tunnus varchar(24), salasana varchar(12), sposti varchar(23), nimi varchar(10), kaupunki varchar(100) );
Noin tuo toimii ainakin minulla. Huomaa kuitenkin jos laitat taulun nimeksi jonkun mysql:n varatun sanan, esim. primary, joudut laittamaan taulun nimen näin: ´primary´
Hmm, se näemmä valittaa tuosta kun laitoin tuohon xxx:n paikkalle muuttujan. Mitenkä sen muuttujan saisi siihen hyväksyttävästi?
<?php $yhteys = mysql_connect("xxxx","xxxx","xxxx"); mysql_select_db("xxxxx",$yhteys); $taulu = "xxx"; $create = "CREATE TABLE ".$taulu." (tunnus varchar(24),salasana varchar(24),sposti varchar(24),nimi varchar(24),kaupunki varchar(24))"; mysql_query($create); mysql_close($yhteys); ?>
Olepa hyvä.
Ei helvet*n kuustoista, ei toimi vieläkään.
$yhteys = mysql_connect("localhost", "root", "xxx") or die("Yhteyttä MySQL-tietokantaan ei saatu."); mysql_select_db("kotisivuyhteiso", $yhteys) or die("Tietokantaa ei löydy."); $create = "CREATE TABLE ".$tunnus." (tunnus varchar(24),salasana varchar(24),sposti varchar(24),nimi varchar(24),kaupunki varchar(24))"; mysql_query($create) or die(mysql_error()); $insert = "INSERT INTO ".$tunnus." (tunnus, salasana, sposti, nimi, kaupunki) VALUES (".$tunnus.", ".$salasana.", ".$sposti.", ".$nimi.", ".$kaupunki.")"; mysql_query($insert) or die(mysql_error()); header("Location: succes.php"); mysql_close($yhteys);
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 'Mämmelä (tunnus varchar(24),salasana varchar(24),sposti varchar(24),nimi varch' at line 1
Oletko kokeillut muilla nimillä, joissa ei ole ääkkösiä?
Mutta minulla jgz:n koodi toimi suoraan myös ääkkösiä sisältävillä taulunnimillä.
Hmm, vika lienee siis muualla kuin koodissa. Käyttöoikeuksien kyllä pitäisi olla kunnossa, phpMyAdminilla olen ne säätänyt. Voiskohan tuo olla php:n asetuksissa...
Onko noissa insert lauseen muuttujissa, $tunnus, $salasana, jne. hipsut ? siis esim. näin: $salasana = " 'jokusalasana' " eikä näin: $salasana = "jokusalasana"
Esimerkki putkan php-oppaasta:
INSERT INTO varasto (nimi, hinta, maara) VALUES ('laskin', '10', '10');
No voi perhonen, vika oli tosiaankin noissa hipsuissa. Kylläpä elämä välillä potkii päähän oikein kunnolla. -_- No, onneksi selvisi. Kiitos kaikille auttaneille. :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.