/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
(MySQL-php) Insert fra webformular virker ~
Fra : iLotG_


Dato : 29-11-02 01:50

Jeg vil indsætte data fra en webformular i en MySQL database. Jeg er ret ny
i det her, men har læst og læst for ikke at virke alt for dum. Desværre
fandt jeg ikke et svar jeg kan bruge. Kan I hjælpe.

Hvordan kan det være at denne virker fint: (her kommer data selvf. ikke fra
webformularen):
<?php
$conn = mysql_connect("localhost", "xx", "yy");
mysql_select_db("zz");
$table = "bestillinger";
$Navn = "test10";
$insertSQL = "insert into $table set
Navn='$Navn',
Adresse='Æblehaven 12'";
mysql_query($insertSQL);
mysql_close($conn);
?>

når denne ikke gør:
<?php
$Navn = $_REQUEST["Navn_form"];
$Adresse = $_REQUEST["Adresse_form"];
$By = $_REQUEST["By_form"];
$Land = $_REQUEST["Land_form"];
$E_mail = $_REQUEST["E_mail_form"];
$Kort_type = $_REQUEST["Kort_type_form"];
echo "$Navn"; // det udskrives fint
$conn = mysql_connect("localhost", "xx", "yy");
mysql_select_db("zz");
$table = "bestillinger";
echo "$Navn"; // det udskrives fint
$insertSQL = "insert into $table set
Navn='$Navn',
Adresse='$Adresse',
By='$By',
Land='$Land',
E_mail='$E_mail',
Kort_type='$Kort_type'";
mysql_query($insertSQL);
mysql_close($conn);
echo "$Adresse"; // det udskrives fint
?>
Der kommer ikke nogen fejlmeddelelser fra php, der udskrives blot korrekt 2
x navn og 1 x adresse. Dem har jeg sat ind for at tjekke, hvor langt php
kommer i scriptet. Jeg har haft MySQL startet med --log-bin for at få en
fejllog. Den viser bare ikke nogen fejl.
Mvh



 
 
Jesper Brunholm (29-11-2002)
Kommentar
Fra : Jesper Brunholm


Dato : 29-11-02 02:41

iLotG_ wrote:

> Jeg vil indsætte data fra en webformular i en MySQL database. Jeg er
> ret ny
> i det her, men har læst og læst for ikke at virke alt for dum. Desværre
> fandt jeg ikke et svar jeg kan bruge. Kan I hjælpe.
>
> Hvordan kan det være at denne virker fint: (her kommer data selvf.
> ikke fra
> webformularen):


Uden at gennemanalysere dine queries vil jeg sige: lav noget
fejl-håndtering.

mysql_query("enQuery")or trigger_error(mysql_error());

så får du nemlig pludselig noget feedback når det ikke virker

Prøv også at echo'e $insertSQL inden du sender den til Queryen, sender
du det du regner med?

mvh

Jesper Brunholm


iLotG_ (29-11-2002)
Kommentar
Fra : iLotG_


Dato : 29-11-02 14:56


"Jesper Brunholm" <nospam@brunholm-scharff.dk> skrev i en meddelelse
news:3de6c5b4$1@news.wineasy.se...
> iLotG_ wrote:
>
> > Jeg vil indsætte data fra en webformular i en MySQL database. Jeg er
> > ret ny
> > i det her, men har læst og læst for ikke at virke alt for dum. Desværre
> > fandt jeg ikke et svar jeg kan bruge. Kan I hjælpe.
> >
> > Hvordan kan det være at denne virker fint: (her kommer data selvf.
> > ikke fra
> > webformularen):
>
>
> Uden at gennemanalysere dine queries vil jeg sige: lav noget
> fejl-håndtering.
>
> mysql_query("enQuery")or trigger_error(mysql_error());
>
> så får du nemlig pludselig noget feedback når det ikke virker
>
> Prøv også at echo'e $insertSQL inden du sender den til Queryen, sender
> du det du regner med?
>
> mvh
>
> Jesper Brunholm
>

Yep der sendes det der skal:
insert into bestillinger set Navn='test11', Adresse='Ækkkkkk', By='9999
xxxxx', Land='Danmark', E_mail='xxx@yyy.dk', Kort_type='xxxxxxxxvvvfrt
dfdd'

Trigger_error fortæller:
Notice: You have an error in your SQL syntax near 'By='9999 xxxxx',
Land='Danmark', E_mail='xxx@yy' at line 4 in F:\xxx\yyy.php on line 20

Så var det at jeg prøvede at smide INSERT-strengen ind i phpMyAdmin. Den kom
med nogen farvekoder for SQL-forespørgslen og farven satte mig på sporet af
at By åbenbart er et reserveret ord. Jeg ændrede det til By_ hele vejen
igennem og så kørte det. Sikkert en typisk begynderfejl at det danske ord By
er et fyord i MySQL.
Tak for hjælpen.



Jens Gyldenkærne Cla~ (29-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 29-11-02 21:11

iLotG_ skrev:

> Så var det at jeg prøvede at smide INSERT-strengen ind i
> phpMyAdmin. Den kom med nogen farvekoder for SQL-forespørgslen
> og farven satte mig på sporet af at By åbenbart er et
> reserveret ord.

Nemlig. BY bruges når du skal sortere data:

SELECT <felter>
FROM <tabeller>
ORDER BY <kriterier>

> Jeg ændrede det til By_ hele vejen igennem og
> så kørte det. Sikkert en typisk begynderfejl at det danske ord
> By er et fyord i MySQL.

Det er set før

Til gengæld er der sikkert også mange engelsksprogede der får fejl
fordi de bruger feltnavnet Date (jeg ved ikke om det er et
reserveret ord i mysql, men det er det fx i Access).
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste