Avatar billede fatal85 Nybegynder
21. august 2010 - 16:04 Der er 15 kommentarer og
2 løsninger

Erstatte mysql error med tekst

or die(mysql_error());

Denne måde at vise en mysql error på er ganske normal.
Men er det muligt at erstatte fejlen med en tekst af eget ønske?

f.eks. får jeg denne "fejl", når man prøver indsætte noget i en tabel som allerede findes

Duplicate entry '1' for key 1

Det kunne være ganske snedigt hvis der bare stod at det ønskede allerede fandtes i tabellen.
Avatar billede majbom Novice
21. august 2010 - 19:24 #1
du kan bruge mysql_errno i stedet for mysql_error og så lave en funktion, hvor du med, f.eks., en switch udskriver en fejlmeddelelse ud fra nummeret som errno returnerer...
Avatar billede showsource Seniormester
21. august 2010 - 20:05 #2
Hvis du er 100% på hvad du vil i din query, er det jo blot at udskifte mysql_error() med tekst:
or die ("Værdi findes allerede !");

Men derudver er der noget med at loade "errmsg.sys" fra korrekt dir, til at få vist errors i bestemt lang.
Men et eller andet sted er det jo kun brugbart på en udviklingsserver.
Avatar billede fatal85 Nybegynder
23. august 2010 - 18:22 #3
Splazz: Har forsøgt at bruge errno på samme måde som error, men synes ikke lige at virke. Kan se at scriptet ikke bliver kørt færdigt, men der kommer ingen tal.

mysql_query("INSERT INTO $tabelname
(albumid, albumnavn, albumlink, creator) VALUES('$idinsert', '$navninsert', '$albumlink', '$usr_id') ")
or die(mysql_errno());

Showsource: Men er det ikke et problem hvis der kommer en anden fejl end lige en specifik?
Avatar billede showsource Seniormester
23. august 2010 - 18:31 #4
Ehh, der kan vel kun komme de fejl som mysql kender?

Anyway:

if(!mysql_query("INSERT INTO $tabelname
(albumid, albumnavn, albumlink, creator) VALUES('$idinsert', '$navninsert', '$albumlink', '$usr_id') ")) {

echo mysql_errno();

}
Avatar billede majbom Novice
23. august 2010 - 19:06 #5
-> #4 - er det ikke det samme som at bruge die() ?
Avatar billede showsource Seniormester
23. august 2010 - 22:13 #6
Skulle man jo tro, men ikke hos mig.


$sql = "SELECT IF(1 > 0, Jow', 'Nej')";

// Virker ikke
$et = mysql_query($sql) or die (mysql_errno());

// VIrker
$row = mysql_query($sql);
if(mysql_errno()) {
echo mysql_errno();
}

Der er iøvrigt denne side
http://dev.mysql.com/doc/refman/5.1/en/error-handling.html
om mysql errors
Avatar billede majbom Novice
23. august 2010 - 22:18 #7
-> #6 - men det virker hvis du bruger mysql_error() ?
Avatar billede showsource Seniormester
23. august 2010 - 22:25 #8
JA, den viser evt. fejlbesked
Avatar billede majbom Novice
23. august 2010 - 22:33 #9
okay, jamen så er der jo ikke andet for end at gøre det på den besværlige måde :)
Avatar billede fatal85 Nybegynder
23. august 2010 - 22:34 #10
Det er rigtig nok, har lige prøvet showsource's kode og det virker. Takker for hjælpen...ville vel være mest fair hvis showsource fik pointene, men mange tak for hjælpen til at dig også splazz.
Avatar billede showsource Seniormester
23. august 2010 - 22:37 #11
Njah, det må da være en deler !
Avatar billede fatal85 Nybegynder
23. august 2010 - 22:44 #12
Nå ok, var ikke klar over man kunne del point. Hvordan gør man?
Avatar billede majbom Novice
23. august 2010 - 22:45 #13
jeg smider også et svar, så accepterer du begge 2 :)
Avatar billede majbom Novice
23. august 2010 - 22:45 #14
og det skulle have været et svar :S
Avatar billede majbom Novice
23. august 2010 - 23:10 #15
det er ikke fordi jeg mangler det halve point, men hvor mon det blev af?

og tak for point :)
Avatar billede showsource Seniormester
24. august 2010 - 00:16 #16
Det er nok exp.dk som scorer kassen :O)
Avatar billede majbom Novice
24. august 2010 - 00:43 #17
hehe, ja det går nok lige i kagekassen! :D
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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