Avatar billede michael_stim Ekspert
27. maj 2003 - 23:14 Der er 5 kommentarer og
2 løsninger

Standard til databasekald?

Er der en standard til hvordan man kalder på sin database. Jeg tänker på om man skriver en funktion, klasse eller lign. så man slipper for at skrive det hver gang man behöver databasen. I ASP skriver man f.eks i global.asa.
Vis gerne med eksempel.
//Michael
Avatar billede ahv Nybegynder
27. maj 2003 - 23:16 #1
Jeg plejer at lægge det i en include fil, men om det er en standart ved jeg nu ikke.
Avatar billede ahv Nybegynder
27. maj 2003 - 23:18 #2
f.eks. include_db.php
<?php
$server = "host";
$username = "username";
$password = "password";
$database = "database";

$connection = mysql_pconnect($server,$username,$password);
mysql_select_db($database);
?>

Grunden til jeg har lagt dem i variabler er blot en gammel vane, det kunne jo også bare være:

<?php
$connection = mysql_pconnect("host","username","password");
mysql_select_db("database");
?>

også når den skal kaldes på de andre sider så blot include("include_db.php");
Avatar billede postndk Nybegynder
27. maj 2003 - 23:19 #3
jeg bruger selv en homemade database klasse, som jeg includer i min scripts .

<?php
/***************[ Database Class  ]******************
* This script is written by Hasse Hansen,and may be  *
* used as long as these lines stay where they are.  *
*                                                    *
* Copyright (c) 2003 Hasse R. Hansen <h@ramlev.dk>  *
*****************************************************/

class db {
        var $db_host;
        var $db_user;
        var $db_pwd;
        var $db_db;
        var $query;
        var $result;

        function db($host, $user, $pass, $db) {
                $this->host = $host;
                $this->user = $user;
                $this->pwd =  $pass;
                $this->db =  $db;
                mysql_connect($this->host, $this->user, $this->pwd) or die("Cannot connect to MySQL database server at ".$this->host."\n");
                mysql_select_db($this->db) or die("Cannot find database ".$this->db."\n");
        }

        function query($query) {
                if ($this->query = @mysql_query($query)) return true;
                else return false;
        }

        function record() {
                $this->result = mysql_fetch_array($this->query);
                return $this->result;
        }

        function numrows() {
                $this->result = mysql_num_rows($this->query);
                return $this->result;
        }

        function findid() {
                $this->result = mysql_insert_id();
                return $this->result;
        }
}
?>

så laver du en :

<?
require_once("db.class");
$db = new db("host","username","password","database");

// og  så kan du kalde med
$db->query("SELECT * FROM tabel);
while ($db->record()) {
echo $db->result[navn]." - ".$db->result[email]."<br>";
}
?>
Avatar billede jakoba Nybegynder
27. maj 2003 - 23:20 #4
Der er nu og da mennesker der definerer en klasse til det. så de blot skal inkludere filen med den klasse for at få en db åbnet og klar. men besparelsen i overskuelighed er ikke synderlig stor. det er noget nær ligeså nemt at gøre det i hånden.
Avatar billede ahv Nybegynder
27. maj 2003 - 23:21 #5
Grunden til jeg lægger min i en include er blot fordi jeg tester på forskellige servere så er det rart kun at skulle rette et sted.
Avatar billede michael_stim Ekspert
27. maj 2003 - 23:29 #6
OK, så kan jeg godt lägge min i en god gammel funktion, uden at nogen griner af mig. Tak for oplysningerne.
//Michael
Avatar billede tipsen Nybegynder
28. maj 2003 - 02:01 #7
postndk: Tror du kan speede din klasse op ved at gøre følgende nogle steder:

function record() {
  return mysql_fetch_array($this->query);
}

altså samle 2 statements til ét - kan ikke se det skulle ødelægge noget!
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