mysql_fetch row til automatisk variabelnavn.

Tags:    php mysql

Hejsa, jeg synes ofte jeg kommer i en situation hvor jeg laver while loop til at udtrække SQL fra helt nye databaser...

jeg plejer således at lave dem til simple php variabler så jeg nemmere kan arbejde med dem senere fx som her:

$titel1 = $row['titel1'];
$navn = $row['navn'];

da sql-navnene altid er fine som de er, så ville jeg høre om der findes en metode til at lave kolonne-navnet automatisk til variabler, så jeg ikke selv skal sidde manuelt og gøre dette hver gang...

altså hvis jeg har en kolonne som hedder "titel1" så ville jeg have at den automatisk lavede en variabel som hed $titel1 - så man slipper for at kalde $row['titel1'];

det ville spare mig en del tid





4 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
jeg tror selv jeg har lavet det nu :-)

Fold kodeboks ind/udPHP kode 


så nu kan jeg kalde kolonnenavnene mere simpelt uden at skulle lave variablerne manuelt :-)

jeg skal naturligvis lave det til en funktion.

skriv gerne hvis det kan optimeres eller hvis der er problemer med ovenstående funktion...



og du bør også lave det om til mysqli eller PDO, du er opmærksom på at det gamle mysql API udgår i en kommende vertion af PHP ikk ?
http://dk.php.net/manual/en/mysqlinfo.api.choosing.php



hm... det var jeg faktisk ikke klar over..
jamen det hjælper jo altid at få udvidet sin horisont :-)

jeg fandt dette på eksperten.dk
Fold kodeboks ind/udPHP kode 


http://www.eksperten.dk/guide/1480

der er jo tæt på det jeg søger i funktionen:

/* Bind resultatet */
$stmt->bind_result($fornavn, $efternavn);





Indlæg senest redigeret d. 02.01.2013 21:51 af Bruger #5395
der er nok nogle der på et tidspunkt får en slem overrakelse, hvis de ikke vedligeholder deres code, og jeg tror også nogle webhoteller vil tilbyde at blive på en ikke opdateret vertion af PHP en tid, når det bliver aktuelt

at gå fra mysql til mysqli (Procedural style), er meget nemt, der tilføjes bare i på samtlige functioner
så mysql_fetch_row bliver til mysqli_fetch_row
de eneste ting du skal være opmærksom på er mysqli_query og mysqli_real_escape_string, der var connection valfri som anden parameter i den gamle API og i mysqli er det første parameter, og et krav
http://php.net/mysqli_real_escape_string
http://php.net/mysqli_query

hvis du slår en tilfældig mysql_xxx function op på php.net, får en diskret henvisning til tilsvarende i mysqli_xxx og PDO.
feks http://php.net/mysql_fetch_row
bliver til
mysqli http://php.net/manual/en/mysqli-result.fetch-row.php
PDO http://php.net/manual/en/pdostatement.fetch.php

fordelen ved mysqli er du kan anvende OOP style, og Prepared Statements.

fordelen ved PDO er at du kan skifte selve databasen ud, uden at skulle rette i PHP coden (db connection skal selvføgelig rettes), det er rent OOP style og du kan også her anvende Prepared Statements.

en udemærket guide, jeg har også tidligere brugt den.
Prepared Statements har et problem hvis du laver en "select * .....", da der så ikke er nogle navne den kan referarer til




t