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

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Error trapping ved INSERT i Mysql
Fra : Nederbasse


Dato : 11-05-04 08:55

Hejsa

kan man ikke få nogle bedre fejlmeddelser når der er fejl ved insert i Mysql
istedet for
****** or die ("Der er en fejl");

Når jeg henter data bruger jeg denne linie
if(!$result) die("MySQL-fejl: ".mysql_error() ); som giver en mere specifik
fejlmeddelse
Kan man lave noget tilsvarende med en insert ?
Lars



 
 
Johan Holst Nielsen (12-05-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-05-04 11:30

Nederbasse wrote:

> Hejsa
>
> kan man ikke få nogle bedre fejlmeddelser når der er fejl ved insert i Mysql
> istedet for
> ****** or die ("Der er en fejl");
>
> Når jeg henter data bruger jeg denne linie
> if(!$result) die("MySQL-fejl: ".mysql_error() ); som giver en mere specifik
> fejlmeddelse
> Kan man lave noget tilsvarende med en insert ?

Well - ved inserts ville jeg

$sql = "INSERT INTO foo VALUES ('bar')";
$res = mysql_query($sql);
if(mysql_affected_rows($result)<1) {
die("MYSQL-fejl: ".mysql_error());
}

mvh
Johan


Kim Emax (12-05-2004)
Kommentar
Fra : Kim Emax


Dato : 12-05-04 18:20

In the news:40a1fced$0$500$edfadb0f@dread14.news.tele.dk,
Johan Holst Nielsen <johan@weknowthewayout.com> wrote:

> Well - ved inserts ville jeg
>
> $sql = "INSERT INTO foo VALUES ('bar')";
> $res = mysql_query($sql);
> if(mysql_affected_rows($result)<1) {
> die("MYSQL-fejl: ".mysql_error());
> }

hvorfor ikke bare:

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

?

--
Take Care
Kim Emax - master|minds - Vi tænker IT for dig...
http://www.masterminds.dk - http://www.emax.dk



Nederbasse (12-05-2004)
Kommentar
Fra : Nederbasse


Dato : 12-05-04 20:24


"Kim Emax" <newsgroup@remove-emax.dk> skrev i en meddelelse
news:L0toc.163544$jf4.8387702@news000.worldonline.dk...
> In the news:40a1fced$0$500$edfadb0f@dread14.news.tele.dk,
> Johan Holst Nielsen <johan@weknowthewayout.com> wrote:
>
> > Well - ved inserts ville jeg
> >
> > $sql = "INSERT INTO foo VALUES ('bar')";
> > $res = mysql_query($sql);
> > if(mysql_affected_rows($result)<1) {
> > die("MYSQL-fejl: ".mysql_error());
> > }
>
> hvorfor ikke bare:
>
> mysql_query("insert...") or die(print mysql_error());
>
> ?
>
> --
> Take Care
> Kim Emax - master|minds - Vi tænker IT for dig...
> http://www.masterminds.dk - http://www.emax.dk
>
>
Skriver bare print mysql_error()
jeg er helt ny udi php så jeg har virkelig brug for nogle fejl meddelser der
siger noget

Lars



Kim Emax (12-05-2004)
Kommentar
Fra : Kim Emax


Dato : 12-05-04 21:25

In the news:c7ttkc$1tcu$1@news.cybercity.dk,
Nederbasse <laneNOSPAM@jubiipost.dk> wrote:

> Skriver bare print mysql_error()

Ikke forstået?

> jeg er helt ny udi php så jeg har virkelig brug for nogle fejl
> meddelser der siger noget

Det gør mysql_error() også... om du så forstår dem, er noget helt andet

Denne:
mysql_query("insert...") or die(print mysql_error());
Betyder at enten så går din SQL statement godt eller mysql fejlen printes...

--
Take Care
Kim Emax - master|minds - Vi tænker IT for dig...
http://www.masterminds.dk - http://www.emax.dk



Kristian Thy (12-05-2004)
Kommentar
Fra : Kristian Thy


Dato : 12-05-04 22:23

Kim Emax uttered:
> Denne:
> mysql_query("insert...") or die(print mysql_error());
> Betyder at enten så går din SQL statement godt eller mysql fejlen printes...

Båååååååt!!!

die() tager en string som argument. print() tager en string som
argument, skriver den på skærmen og returnerer void. Dvs. at du
skriver "print mysql_error()" ud på skærmen og kalder die(<void>).

Prøv i stedet med ...or die(mysql_error())

:)

\\kristian
--
Real programmers don't comment their code.
It was hard to write, it should be hard to read.

Kim Emax (12-05-2004)
Kommentar
Fra : Kim Emax


Dato : 12-05-04 22:40

In the news:2gfiu0F2eah9U1@uni-berlin.de,
Kristian Thy <thy@it.edu> wrote:

> die() tager en string som argument. print() tager en string som
> argument, skriver den på skærmen og returnerer void. Dvs. at du
> skriver "print mysql_error()" ud på skærmen og kalder die(<void>).

hmm... plejer godt nok at lave en:

or die(print "der skete en fejl:" . mysql_error());

har ikke testet det andet, men det har du så?

--
Take Care
Kim Emax - master|minds - Vi tænker IT for dig...
http://www.masterminds.dk - http://www.emax.dk



Peter Brodersen (12-05-2004)
Kommentar
Fra : Peter Brodersen


Dato : 12-05-04 22:47

On 12 May 2004 21:23:12 GMT, Kristian Thy <thy@it.edu> wrote:

>die() tager en string som argument. print() tager en string som
>argument, skriver den på skærmen og returnerer void. Dvs. at du
>skriver "print mysql_error()" ud på skærmen og kalder die(<void>).

Nej, det er ikke helt det, der sker. Die modtager returværdien for
print (der returnerer (int) 1 - og i øvrigt er en language construct).
Da der returneres en integer, så er dette exit status

Man kan også lave die(strtolower("HEJ")) - uden at man skriver
'strtolower("HEJ")' som output.

Det er dog rigtigt, at die(print mysql_error()) i høj grad er noget
forvirring, rod og dobbeltkonfekt, og det burde rettes. Men
   print mysql_error()
er nu ikke en string. Det er
   "print mysql_error()"
derimod.

--
- Peter Brodersen

Kristian Thy (12-05-2004)
Kommentar
Fra : Kristian Thy


Dato : 12-05-04 23:04

Peter Brodersen uttered:
> On 12 May 2004 21:23:12 GMT, Kristian Thy <thy@it.edu> wrote:
>
>>die() tager en string som argument. print() tager en string som
>>argument, skriver den på skærmen og returnerer void. Dvs. at du
>>skriver "print mysql_error()" ud på skærmen og kalder die(<void>).
>
> Nej, det er ikke helt det, der sker. Die modtager returværdien for
> print (der returnerer (int) 1 - og i øvrigt er en language construct).

Min fejl, print returnerer ganske rigtigt en int.

> Man kan også lave die(strtolower("HEJ")) - uden at man skriver
> 'strtolower("HEJ")' som output.

Ja, fordi strtolower ikke returnerer en int.

> Det er dog rigtigt, at die(print mysql_error()) i høj grad er noget
> forvirring, rod og dobbeltkonfekt, og det burde rettes. Men
>    print mysql_error()
> er nu ikke en string. Det er
>    "print mysql_error()"
> derimod.

Ja, OP må have kommet til at sætte "" om det hvis det skal give nogen
mening...

\\kristian
--
Failure is not an option. It comes bundled with your Microsoft products.


Nederbasse (12-05-2004)
Kommentar
Fra : Nederbasse


Dato : 12-05-04 20:10

SNIP
>
> Well - ved inserts ville jeg
>
> $sql = "INSERT INTO foo VALUES ('bar')";
> $res = mysql_query($sql);
> if(mysql_affected_rows($result)<1) {
> die("MYSQL-fejl: ".mysql_error());
> }
>
> mvh
> Johan
>
Den giver heller ingen fejl og der kommer ikke noget idatabasen

Lars



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste