Ik ben bezig een beetje OOP te leren, en ben begonnen met een volgend script:
<?
class Connection {
protected $link, $server, $username, $password, $db;
protected function connect()
{
$this->link = mysql_connect($this->server, $this->username, $this->password);
mysql_select_db($this->db, $this->link);
}
}
$connect = new Connection();
$connect->setupconnection('server', 'username', 'wachtwoord', 'database');
?>
Maar mijn vraag: Wat is hier nou "beter" aan dan gewoon even te typen:
mysql_connect(bla);
mysql_select_db(bla,bla);
???
Ik vind het er trouwens wel stoer uit zien :P
Het heeft geen nut om die functie te maken. $_SERVER is een array die zich in de global scope bevindt. Dit wil zeggen dat de alle waarden daar uit overal beschikbaar zijn. Als je hier nog een functie van maakt die het IP aan een variable toewijst doe je dus hetzelfde als:
Uhu, nog een schakeltje logisch nadenken omgezet :) Danku. Maar ik zou toch graag willen weten hoe ik mysqli (en geen PDO) kan gebruiken binnen functies zonder telkense opnieuw te verbinden, kan net een beetje mysqli taal verstaan na jaren van mysql gewoon :P en dan opeens PDO (wat volgens mij meer voor de grote jongens is die grote projecten doen :P)
Uhu, nog een schakeltje logisch nadenken omgezet :) Danku. Maar ik zou toch graag willen weten hoe ik mysqli (en geen PDO) kan gebruiken binnen functies zonder telkense opnieuw te verbinden, kan net een beetje mysqli taal verstaan na jaren van mysql gewoon :P en dan opeens PDO (wat volgens mij meer voor de grote jongens is die grote projecten doen :P)
Je kunt de connectie gebruiken door een een global variabel van te maken.
<?ph
global $conn = mysqli_connect(...);
function blaat()
{
$q = "SELECT...";
mysqli_query($q, $conn)
}
?>
hmm ook op de OOP manier mogelijk volgens mij niet want die probeerde ik net:
Buiten de class zette ik dit:
<?
global $mysqli = new mysqli(....);
?>
nee je moet het object niet global maken maar enkel de connectie. Die zet je dus buiten je klasse en vervolgens als je hem nodig hebt om een query uit te voeren kun je die connectie gewoon in je methoden aanroepen.
Ik zou geen klasse maken van mysqli, maar mysqli in een klasse gebruiken door buiten de klasse een connectie aan te maken en te koppelen aan een global variabel en deze gebruiken binnen je klasse.