Wij maken gebruik van powerDNS icm met poweradmin.
Via ons eigen registratie systeem kunnen wij simpel en snel nieuwe zones in de DNS aanmken door direct de database van powerdns te vullen.
Helaas moet je na dit altijd de database syncen via de interface van powerdns
Het scripje wat dit doet is heel simpel namelijk het volgende:
Code:function seq_update(&$item) { global $dbi2; $number_u =$dbi2->getOne("SELECT MAX(id) FROM $item"); if($number_u > 1) { $dbi2->nextID($item); if($dbi2->getOne("SELECT id FROM " . $item . "_seq") < $number_u) { $number_u += 1; $dbi2->query("UPDATE " . $item . "_seq SET id='$number_u'"); } } } $tables = array('users', 'zones', 'records', 'domains'); array_walk($tables, 'seq_update');
Nu heb ik deze zode letterlijk overgenomen in ons eigen script en geef dus hetzelfde commando als poweradmin echter nu krijg ik ineens een error namelijk de volgende:
Fatal error: Call to a member function getOne() on a non-object in e:\path\to\website\on\the\server\dnsentry.php on line 65
(de error komt zowel lokaal bij mij voor (windows) als via de webserver (Plesk op redhat9))
Line 65 is dus: $number_u =$dbi2->getOne("SELECT MAX(id) FROM $item");
De functie getOne is volgens mij een pear functie en deze is geinstalleerd op de server, ook weet ik zeker dat het script connect naar de juiste database.
De global functie $dbi2 is correct.
Nu vraag ik me af hoe dit kan en wie er een ander "normaal" php/sql query kent die hetzelfde doet zodat dit wel gaat werken.