Scripts

Doquery()

De functie doquery() heeft: -database connectie (als het al niet begonnen is) -query verwerking (aan de hand van parameters) -fetchen van de resultaten. In totaal heeft de functie 3 parameters: -query: De query, dit kan SELECT, INSERT INTO, UPDATE etc. zijn. -tabelnaam: Voor welke tabel wil je het laten gelden -single-fetch: Ik heb het single genoemd, omdat het één resultaat kan verwerken. Als je meerdere resultaten wilt fetchen, moet je een while loop gebruiken. (moet ik nog iets op vinden) In de query wordt gebruik gemaakt van . Deze wordt vervangen door de 2de parameter in de functie. Je kunt dit naar eigen hand veranderen in allerlei andere vormen. Je kunt het ook weghalen ;) Je kunt de functie ook uitbreiden met bijvoorbeeld anti-sql injection etc, maar dat heb ik hier even weggelaten... In voorbeeld.php staat hoe je het zult moeten gebruiken, voor zowel single- als multi-fetch. Het is basic, maar misschien wel handig? Of het sneller of beter is? Geen idee :) Het werkt gewoon fijn als je een enkele result wilt hebben bijvoorbeeld.

doquery
[b]inc/defines.php:[/b]
[code]<?php

/**
* Definities voor de connectie
* Bewerking vereist
*/
define('HOST', "localhost");
define('DBUSER', "***");
define('DBPASS', "***");
define('DBNAME', "***");
//define('PREFIX', "prefix_"); 
/**
* Als je geen prefix wilt, verwijder in:
inc/defines.php: 
- define('PREFIX', $dbprefix);
- $dbprefix = "prefix_";
mysql.php:
- PREFIX. in regel 24
*/

?>[/code]

[b]inc/mysql.php:[/b]
[code]<?php

function doquery($query, $table, $single = false){
	/**
	* Registreer de variabel $link
	NOTE: Er wordt hier een connecte aangemaakt, maar als je ergens anders ook een connectie aan hebt gemaakt, ben er dan zeker van dat de variabel de naam: $link heeft en niet $connect o.i.d.
	*/
	static $link;
	
	if(!$link){
		/**
		* Als er geen database connectie is, start er een
		*/
		$link = mysql_connect(HOST, DBUSER, DBPASS);
		if($link){
			if(mysql_select_db(DBNAME) != TRUE){
				echo "Can't connect the database, contact the webmaster for further information.";
			}
		}else{
			echo "Can't connect the server, contact the webmaster for further information.";
		}
		
	}
	/**
	* Maak de main-query a.h.v. de eerste twee parameters van doquery()
	*/
	// $sqlquery = mysql_query(str_replace("[table]", PREFIX.$table, $query)) or die(mysql_error()); (de prefix versie)
	$sqlquery = mysql_query(str_replace("[table]", $table, $query)) or die(mysql_error());
	
	if($single){
		/**
		* Gebruik de 3de parameter om de data te verkrijgen
		*/
		$sqlrow = mysql_fetch_array($sqlquery);
		return $sqlrow;
	}else{
		return $sqlquery;
	}
}

?>[/code]

[b]voorbeeld.php:[/b]
<?php
require('inc/defines.php');
require('inc/mysql.php');
// De prefix optie weggelaten

// De parameters zijn: (query,tabelnaam,single(standaard op false))
$row = doquery("SELECT * FROM [table]",'example');
/**
* Meerdere resultaten ophalen
*/
while($result = mysql_fetch_array($row)){
	echo "Naam: ".$result['naam']."<br />";
	echo "Woonplaats: ".$result['woonplaats']."<br />";
}
/**
* Enkele resultaat ophalen
*/
$row = doquery("SELECT * FROM [table] WHERE id='1'",'example',true);
	echo "Naam: ".$row['naam']."<br />";
	echo "Woonplaats: ".$row['woonplaats']."<br />";
?>

Reacties

0
Nog geen reacties.