Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: SQL-lausekkeeessa vikaa

Sivun loppuun

Tumpelo [08.06.2006 13:13:42]

#

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.

tkarkkainen [08.06.2006 13:24:19]

#

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() );

Tumpelo [08.06.2006 13:45:05]

#

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

tkarkkainen [08.06.2006 14:35:41]

#

Varcharien kanssa täytyy ilmoittaa kentän pituus: VARCHAR(9) tunnus, VARCHAR(16) salasana... tjsp.

Tumpelo [08.06.2006 15:53:19]

#

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

jgz [08.06.2006 16:02:58]

#

Katsopa vaikka tuolta mallia: http://www.w3schools.com/sql/sql_create.asp

Tumpelo [08.06.2006 16:33:31]

#

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.

jgz [08.06.2006 16:51:07]

#

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.

Tumpelo [08.06.2006 16:56:29]

#

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() );"

jgz [08.06.2006 17:13:57]

#

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´

Tumpelo [08.06.2006 17:46:43]

#

Hmm, se näemmä valittaa tuosta kun laitoin tuohon xxx:n paikkalle muuttujan. Mitenkä sen muuttujan saisi siihen hyväksyttävästi?

jgz [08.06.2006 19:02:48]

#

<?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ä.

Tumpelo [09.06.2006 11:24:43]

#

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

Antti Laaksonen [09.06.2006 11:29:40]

#

Oletko kokeillut muilla nimillä, joissa ei ole ääkkösiä?

Mutta minulla jgz:n koodi toimi suoraan myös ääkkösiä sisältävillä taulunnimillä.

Tumpelo [09.06.2006 11:34:00]

#

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...

jgz [09.06.2006 15:54:20]

#

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');

Tumpelo [10.06.2006 20:46:59]

#

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. :)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta