Poul Erik Jensen wrote:
> "Per Thomsen" <pert@pert.dk> skrev i en meddelelse
> news:42a8307c$0$18641$14726298@news.sunsite.dk...
>
>
>>$res = mysql_query(...));
>>if ( ($errCode = mysql_errno($res))==0 ) {
>
>
> Warning: mysql_errno(): supplied resource is not a valid MySQL-Link resource
>
> Samme fejl, hvad enten query fejler eller ej
Det var vist mig, der var lidt for hurtig, da jeg indtastede de linjer.
Man skal ikke give 'result resourcen' med som parameter, men derimod
'link resourcen' (det er den der bliver returneret fra mysql_connect().
Det er vist meget normalt, at man slet ikke angiver den, så vil den
sidste åbnede link resource blive anvendt.
Så måske noget i denne stil:
if( $link = mysql_connect($host, $user, $password) ) {
if( mysql_select_db($database, $link) ) {
if( $res = mysql_query($sql, $link) ) {
//kolonnen findes
if( ($numRows = mysql_num_rows($res))>0 ) {
// Der blev fundet $numRows rækker
} else {
// ingen rækker fundet
}
} else {
if( ($errCode = mysql_errno($link))!=0 ) {
if( $errCode==1054 ) ) {
// kolonnen findes ikke
} else {
// noget andet gik galt.
}
}
}
}
}
Man kan godt så godt undvære at give $link parameteren med, så er jo
bare fjerne den alle steder, hvor den er anvendt i ovenstående.
Hvis du stadig ikke kan få det til at virke så bliver du nok nødt til at
vise os den kildekode der fejler.
Men...
Forestil dig to tabeller:
Tabel 1: GodkendtVaerdi ( name )
Tabel 2: Vaerdi ( id, name, value )
Så kan du f.eks. lave:
SELECT value FROM Vaerdi, GodkendtVaerdi WHERE
Vaerdi.name=GodkendtVaerdi.name AND Vaerdi.name=$name AND id=$id;
Synes du virkelig det er mere besværligt end fejlhåndteringsteknikken?
Jeg er næsten sikker på at de i dk.edb.database, gerne vil hjælpe dig
med at få designet en database, der kan håndtere den situation, du
tilsyneladende mener opstår.
>
> Det virker ikke - jeg kan se i referencen, at koden er korrekt, men det er
> jo netop mit problem, at nok kan man læse syntaksen, men ikke samspillet med
> andre kommandoer, der sikkert er væsentlig at forstå.
Tjah... koden var jo så ikke helt korrekt, det gør nok ikke lettere. :)
>
> Men den foreslåede kode fejler altså.
>
> Det ender jo nok med en tabel med de korrekte kolonnenavne, men det er for
> mig at se en halv løsning, der skal administreres, frem for en foretrukket
> automatisk vedligeholdelse - hvis kolonnen ikke findes, så ignorer eller
> opret den.
>
I mit ovenstående eksempel kan man jo så slette, tilføje og ændre
rækkerne i GodkendtVaerdi tabellen.
Mit eksempel er naturligvis et meget søgt eksempel, men da jeg jo ikke
egentlig ved, hvad det er du prøver at opnå, må det være sådan :).
Jeg er ikke nogen ekspert ud i databaser, men på mit indre 'db design
board' lyser alle lamper rødt. Jeg synes du skulle slå en smut forbi
dk.edb.database, og høre deres mening, om din metode. De er sikkert
meget bedre (end ihvertfald jeg) til at forklare, hvorfor det ikke er en
god ide, og hvad man i stedet kan gøre.
MVH Per Thomsen,
http://www.pert.dk/