1 2 3 4 5 6 7 8 9 | <? $host = "hostip"; $Username = "username"; $Password = "WaChTwOoRd"; $Database = "databasenaam"; mysql_connect("$host","$Username","$Password") or die (mysql_error()); mysql_select_db("$Database") or die ("Database connection failed!"); ?> |
1 2 3 | <?php $text=preg_replace('#<table>(.*?)</table>#i','',$originele_text); ?> |
Dat kan niet in MySql. Je kan dus ook geen query maken die over meerdere databases gaan.quote:Op vrijdag 5 augustus 2005 11:18 schreef HaKeeM het volgende:
Ik weet dat je in je query kan werken met
databasenaam.tabelnaam om het onderscheid in je query's aan te geven
Als je query's op meerdere databases uit wil voeren dan moet je per database een verbinding maken. Bij mysql_connect moet je de parameter new_link = true opgeven. Bij elke query die je uitvoert moet je opgeven welke verbinding gebruikt moet worden.quote:maar hoe open je een connectie met twee databases tegelijk.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | // Config $db1 = array( 'server' => 'localhost', 'username' => 'sa', 'password' => '******', 'database' => 'test1' ); $db2 = array( 'server' => 'localhost', 'username' => 'sa', 'password' => '******', 'database' => 'test2' ); // Open connections $conn1 = mysql_connect($db1['server'], $db1['username'], $db1['password'], true); if (!$conn1) { die('Error: could not connect to server.'); } mysql_selectdb($db1['database']); $conn2 = mysql_connect($db2['server'], $db2['username'], $db2['password'], true); if (!$conn2) { die('Error: could not connect to server.'); } mysql_selectdb($db2['database']); // Execute queries $sql1 = 'SELECT * FROM table1'; $result1 = mysql_query($sql1, $conn1); if (!$result1) { die('Error: could not execute query.'); } $sql2 = 'SELECT * FROM table2'; $result2 = mysql_query($sql2, $conn2); if (!$result2) { die('Error: could not execute query.'); } |
Als <table> en </table> op dezelfde regel staan. Anders even de s modifier toevoegen. Dan matcht de punt elk teken, inclusief een newline.quote:Op vrijdag 5 augustus 2005 16:35 schreef Swetsenegger het volgende:
[ code verwijderd ]
Doet dit wat ik denk dat het doet, namelijk alles vanaf <table> tot </table> weghalen?
quote:Op vrijdag 5 augustus 2005 14:52 schreef Postman_Pat het volgende:
...
1 | SUM('AanwezigWinst') |
1 | SUM(`AanwezigWinst`) |
quote:Op vrijdag 5 augustus 2005 18:41 schreef SuperRembo het volgende:
[..]
Als <table> en </table> op dezelfde regel staan. Anders even de s modifier toevoegen. Dan matcht de punt elk teken, inclusief een newline.
1 2 3 | <?php $text=preg_replace('#<table>(.*?)</table>#is','',$originele_text); ?> |
1 2 3 4 | #<table>(.*?)</table>#is /<table>(.*?)<\/table>/is <\<table\>(.*?)\</table\>>is {<table>(.*?)</table>}is |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | class Database { var $host; var $user; var $pass; var $database; // constructor function Database() { // initialiseer hier bepaalde gegevens $this->host = 'localhost'; $this->user = 'mijnveelgebruikteusername'; $this->pass = 'mijnveelgebruiktepassword'; } // functie om de host te bepalen function Sethost($host) { $this->host = $host; } // functie om de user te bepalen function Setuser($user) { $this->user = $user; } // functie om de pass te bepalen function Setpass($pass) { $this->pass = $pass; } // functie om de database te bepalen function Setdatabase($database) { $this->database = $database; } // verbind met database function Connectdb() if($dbc=@mysql_connect($this->host,$this->user,$this->pass)){ if(!@mysql_select_db($this->database)){ die('<p>Database niet te selecteren omdat: '.mysql_error().'</p>'); } }else{ die('<p>Niet verbonden wegens '.mysql_error().'</p>'); } } |
1 2 3 4 5 | $db= new Database; $db->Setuser ('newuser'); $db->Setpass ('newpass'); $db->Setdatabase ('newdb'); $db->Connectdb (); |
1 2 3 4 5 6 7 | <?php function ConnectDB ($host,$user,$pass,$database){ //database connectie maken } ConnectDB('mijnhost','mijnuser','mijnpass','mijndatabase'); ?> |
ik ken dat probleemquote:Op zaterdag 6 augustus 2005 14:40 schreef Swetsenegger het volgende:
Het blijft me maar bezig houden...: OOP
Ik kom maar geen goede tutorial tegen welke me de fineses van OOP goed uitlegt. Tot op heden zie ik het meer als een uitgebreide functie, maar er zal best meer achter zitten.
Het kwartje wil dus maar niet vallen, en ik blijf op zoek naar goede heldere stap voor stap documentatie met duidelijke en nuttige voorbeelden. Dit mag bv ook een boek zijn (graag zelfs) welke OOP in PHP 4 en 5 helder beschrijft.
Iederen met tips voor nederlandstalig online tutorials of duidelijke boeken, ik hou me aanbevolen.
En nederlands omdat wanneer ik de techniek opzich niet begrijp, me ook nog niet druk wil maken of ik de vertaling wel juist interpreteer
Ja, zoiets heb ik ook. Een klasse ziet eruit als een verzameling functies. Dan kan ik net zo goed... een verzameling functies aanleggenquote:Op zondag 7 augustus 2005 17:06 schreef mschol het volgende:
[..]
ik ken dat probleem
maar OOP is , vind ik, eigenlijk een heel omslachtige manier om dingen te laten uitvoeren
volgens mij wilde ze gewoon iets hebben dat altijd een standaard opbouw had en hebben ze daarom OOP gekozen
Je kunt het ook iets anders doenquote:Op zondag 7 augustus 2005 16:47 schreef Swetsenegger het volgende:
Dan maar gewoon beginnen met OOP, al doende leert men
[ code verwijderd ]
Volgens mij is dit een werkende klasse, correct?
En die kan ik zou aanroepen?
[ code verwijderd ]
Indien correct (:P), wat is dan nu het grote voordeel van een klasse boven een functie.
Ik kan natuurlijk ook gewoon dit doen:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | class Database { var $host; var $user; var $database; // constructor function Database($host, $user, $pass, $database) { // initialiseer hier bepaalde gegevens $this->host = $host; $this->user = $user; $this->database = $database; if( @mysql_connect($this->host, $this->user, $pass) ) { if(! @mysql_select_db($this->database)) { die('<p>Database niet te selecteren omdat: '.mysql_error().'</p>'); } } else { die('<p>Niet verbonden wegens '.mysql_error().'</p>'); } } } |
1 | $db = new Database('mijnhost', 'mijnuser', 'mijnpass', 'mijndb'); |
Die is wel netjes inderdaad. Maar kan ik hier nu ook zorgen dat de host al gedeclareerd is naar localhost, en indien nodig ik deze kan overschrijven?quote:Op zondag 7 augustus 2005 17:51 schreef Light het volgende:
[..]
Je kunt het ook iets anders doen
[ code verwijderd ]
Merk op dat ik $pass nergens opsla. Als je dan eens een print_r($db) gebruikt blijft het wachtwoord iig verborgen. En zo kun je in 1 keer verbinding maken:
[ code verwijderd ]
Je kunt je Database-klasse ook meer laten doen dan alleen het maken van een verbinding. Denk aan het tellen van queries, en bijhouden hoe lang de queries duren. Dan heeft zo'n klasse echt meerwaarde boven de standaard mysql_ functies. En het zijn dingen die een query-functie er wel bij kan doen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | class Database { var $host; var $user; var $database; // constructor function Database($host, $user, $pass, $database) { // initialiseer hier bepaalde gegevens $this->host='localhost'; $this->host = $host; $this->user = $user; $this->database = $database; if( @mysql_connect($this->host, $this->user, $pass) ) { if(! @mysql_select_db($this->database)) { die('<p>Database niet te selecteren omdat: '.mysql_error().'</p>'); } } else { die('<p>Niet verbonden wegens '.mysql_error().'</p>'); } } } |
1 | $db= new Database('mijnuser','mijnpass','mijndb'); |
...members... tuurlijk.quote:Al die properties helemaal uitschrijven met setters en getters daar heb je in php4 niet zo veel aan. Je hebt geen onderscheid in private en public members.
Uiteraard kan datquote:Op zondag 7 augustus 2005 19:11 schreef Swetsenegger het volgende:
[..]
Die is wel netjes inderdaad. Maar kan ik hier nu ook zorgen dat de host al gedeclareerd is naar localhost, en indien nodig ik deze kan overschrijven?
1 | function Database($user, $pass, $database, $host='localhost') |
Dat vind ik iig een voordeelquote:Het voordeel is dus behalve dat het misschien wat netter en overzichtelijker is, dat ik mijn variabelen bij de 'functie' hou. Geen risico op overschrijven zeg maar?
[..]
Functies en variabelen. Talen die meer OO zijn kennen public en private members. Van private members is buiten de class het bestaan niet eens te zien. Dat kan in PHP niet, daar zijn alle functies en variabelen van buitenaf te zien en aan te spreken.quote:...members... tuurlijk.
dus het voorbeeld wat ik gaf werkt niet?quote:Op zondag 7 augustus 2005 20:09 schreef Light het volgende:
[..]
Uiteraard kan dat
[ code verwijderd ]
Let wel op de gewijzigde volgorde van de argumentenAls je localhost wilt gebruiken dan geef je gewoon maar 3 argumenten.
In java wordt de term members gebruikt. Hoe dat is in andere OO-talen weet ik niet.quote:Op zondag 7 augustus 2005 20:10 schreef Roönaän het volgende:
members is de verkeerde naam voor attributen gok ik zo.
Je gaat een variabele 2 keer toewijzen, resultaat is dat de eerste eigenlijk wel weg kan. Je kunt wel iets doen dat als je een lege string opgeeft voor $host, dat dan localhost gebruikt wordt. Als je een variabele wilt weglaten dan moet het de laatste zijn.quote:Op zondag 7 augustus 2005 20:14 schreef Swetsenegger het volgende:
[..]
dus het voorbeeld wat ik gaf werkt niet?
Oh kut het is ook nooit goed.quote:Op zondag 7 augustus 2005 20:10 schreef Roönaän het volgende:
members is de verkeerde naam voor attributen gok ik zo.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |