Avatar billede mora Nybegynder
14. september 2000 - 01:41 Der er 9 kommentarer og
1 løsning

Fejl i lille mysql script

Jeg bruger denne del til at oprette min tabel med.

---
mysql_query(\"create table usersys_tlfbog(
id INT NOT NULL auto_increment,
bruger varchar(80),
navn varchar(80),
nummer int,
gruppe int,
PRIMARY KEY(id))
\") or die(mysql_error());
---

- Og det virker fint, herefter vil jeg lægge data i den, og se det, et lille test script er her.

---
<? require(\"mysql.info\"); ?>
<?
mysql_query(\"insert into usersys_tlfbog (bruger, navn, nummer, gruppe) values (\'mora\', \'jan\', \'28287041\', \'0\')\");
$result=mysql_query(\"select * from usersys_tlfbog\");
$num=mysql_num_rows($result);
if($num>0){
while($row=mysql_fetch_array($result)){
echo \"$row[bruger]-$row[navn]-$row[nummer]-$row[gruppe]<br>\";
}
}
?>
---
Men det virker ikke, jeg tror ikke den skriver i MySQL databasen, nogen der kan se fejlen.?
Avatar billede erikjacobsen Ekspert
14. september 2000 - 13:33 #1
Må jeg anbefale at du også her skriver

  mysql_query(\"insert...\") or die(mysql_error());

så du kan se om der går noget galt. Du har vel husket i \"mysql.info\" at
vælge databasen?
Avatar billede mora Nybegynder
14. september 2000 - 16:26 #2
God ide, det vidste sig imidlertid at være MySQL serveren det var galt med.
- Post et svar, så kan du få point for iden, med mysql_error()
Avatar billede mtilsted Nybegynder
14. september 2000 - 16:27 #3
Bare en note: if($Num >0){
er da ikke nødvendig.

Og det ligner at du ikke connecter til din database før du bruger den. Prøv at vise os hele
scripted -)

Avatar billede mora Nybegynder
14. september 2000 - 16:32 #4
$num sættes til antal rækekr der retuneres fra forespørgslen.
if($num>0){ sikrer at der ikke kommer en dum fejl, hvis der ikke var nogle rækker i databasen, så  jo den er nødvendig.

I min mysql.info ligegr login info mv...
Avatar billede erikjacobsen Ekspert
14. september 2000 - 16:37 #5
Ok - generelt en god ide, altid altid altid at se efter fejl i sine kald.
Avatar billede mtilsted Nybegynder
14. september 2000 - 17:13 #6
Nej if($num>0) har ingen betydning.
Hvis din query er tom bliver $row=mysql_fetch_array($result)){
da bare false første gang, og dermed alligevel ikke udført.

Avatar billede alvion Nybegynder
16. september 2000 - 15:49 #7
Får du ikke også en syntaks fejl her?

mysql_query(\"insert into usersys_tlfbog (bruger, navn, nummer, gruppe) values (\'mora\', \'jan\', \'28287041\', \'0\')\");

værdierne 28287041 og 0 skal da ikke indsættes som strenge, da felttypen er integer.
Avatar billede erikjacobsen Ekspert
16. september 2000 - 21:06 #8
Det tillader MySql, alvion - men f.eks. ASP/Access gør ikke.
Avatar billede alvion Nybegynder
16. september 2000 - 21:16 #9
Hmm... Skummelt.

Personligt har jeg aldrig brudt mig om \"typeløse\" sprog, og den syntaks dér, lægger ret meget op til at man kan miste overblikket over sine felters typer.

Nå, men det er nok bare mig... :-)
Avatar billede erikjacobsen Ekspert
16. september 2000 - 21:37 #10
På den anden side skal man ikke \"if\"-e sig ud af om man skal eller ikke skal have \'-er omkring
når man genererer SQL-sætninger i f.eks. PHP. Man kan bare sætte dem hver gang. Nemt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester