Toon posts:

PHP --> connectie MySQL database

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben nu een tijdje bezig met PHP en een MySQL database. Het begint steeds beter te gaan. Na links en rechts veel hulp gevraagd te hebben is me eigenlijk 1 ding opgevallen; Iedereen heeft zijn eigen programeer stijl. Dat is natuurlijk goed maar wat zijn nu de minimale eisen om een goede connectie met een database op te zetten en weer te sluiten natuurlijk.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   $db = mysql_connect("xxxxxx","xxxxxx","xxxxxx");
   mysql_select_db("xxxxxxx");
   $sql = "SELECT * FROM links";
   $result = mysql_query($sql);

   while ($row = mysql_fetch_row($result)) {
   printf ("<tr bgcolor=\"#EEEEEE\">");
   printf ("<td align=\"center\">$row[0]</td>");
   printf ("<td>$row[1]</td>");
   printf ("<td>$row[2]</td>");
   printf ("<td>$row[3]</td>");
   }

   mysql_free_result($result);
   ?>

Ten eerste het maken van een connectie. Is dat zo goed want de variabele $db gebruik ik daarna niet meer ?? Het volgende statement wordt niet in een variabele weggeschreven ?? Is dat nu de manier ???
Ook op het einde het vrijgeven van $result.


Welke manier is de meest goede ???

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 13:51

Janoz

Moderator Devschuur®

!litemod

die $db kun je meegeven aan alle andere mysql functies om aan te geven dat je die database verbinding bedoeld.. Het hoeft niet, maar ikzelf doe het altijd wel.
PHP:
1
2
3
4
5
<?
mysql_select_db($dbname,$db);
mysql_query($sql,$db);
mysql_insert_id($db);
?>

En daarnaast .. In je scripts geen * gebruiken bij de kolomnamen... Daar moet je eigenlijk gewoon de kolomnamen invullen.. Hoef je maar 1 keer te doen en je programma wordt veel leesbaarder!!

Een * moet je eigenlijk alleen bij een count gebruiken of als je in de console ff snel wat gegevens op wilt halen...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
OK heel 2 heel handige tips.
Wie volgt er ??

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

mysql_close() ?

Verwijderd

Niet nodig, aan het eind van een script wordt de connectie automatisch gesloten. Alleen handig als je ergens middenin de connectie wilt sluiten (bijv als je een andere wilt openen)

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

waarom gebruik je printf ipv print/echo :?

Today's subliminal thought is:


  • Mior
  • Registratie: Maart 2000
  • Laatst online: 10:23
code:
1
2
3
4
5
6
   while ($row = mysql_fetch_row($result)) {
   printf ("<tr bgcolor=\"#EEEEEE\">");
   printf ("<td align=\"center\">$row[0]</td>");
   printf ("<td>$row[1]</td>");
   printf ("<td>$row[2]</td>");
   printf ("<td>$row[3]</td>");

Dat kan niet. $row is een object, geen array.
Gebruik $row-><COLUMN-NAAM>.

  • MikeN
  • Registratie: April 2001
  • Laatst online: 19-09 19:19
code:
1
2
3
4
5
6
   while ($row = mysql_fetch_array($result)) {
   printf ("<tr bgcolor=\"#EEEEEE\">");
   printf ("<td align=\"center\">$row[0]</td>");
   printf ("<td>$row[1]</td>");
   printf ("<td>$row[2]</td>");
   printf ("<td>$row[3]</td>");

Of gebruik ditte...

  • vlabakje
  • Registratie: Juni 2000
  • Laatst online: 11-07 00:41
mysql_pconnect()

persistant connectie opbouwen dus

http://www.php.net/mysql_pconnect

als dit hier staat heb ik een php-generated sig :)


  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

Op zondag 23 september 2001 17:55 schreef Phantom_ het volgende:
code:
1
2
3
4
5
6
   while ($row = mysql_fetch_row($result)) {
   printf ("<tr bgcolor=\"#EEEEEE\">");
   printf ("<td align=\"center\">$row[0]</td>");
   printf ("<td>$row[1]</td>");
   printf ("<td>$row[2]</td>");
   printf ("<td>$row[3]</td>");

Dat kan niet. $row is een object, geen array.
Gebruik $row-><COLUMN-NAAM>.
Nee hoor, mysql_fetch_row geeft een array met nummers, mysql_fetch_array een met columnnamen, en mysql_fetch_object geeft een object..

mysql_fetch_row is iets sneller, de andere 2 zijn beter leesbaar..

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

mysql_fetch_array Fetch a result row as an associative array, a numeric array, or both.

mysql_fetch_assoc Fetch a result row as an associative array

mysql_fetch_field Get column information from a result and return as an object

mysql_fetch_lengths Get the length of each output in a result

mysql_fetch_object Fetch a result row as an object

mysql_fetch_row Get a result row as an enumerated array
Pagina: 1