MySQL => PostgreSQL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Zero Dead

Zero Dead

18/06/2006 14:03:00
Quote Anchor link
Ik wil zo spoedig mogelijk overstappen van MySQL naar postgreSQL, en nu wil ik graag weten; wat moet ik allemaal veranderen?

In al mijn scripts(150+) staan ongeveer per script (denk ik) gemiddeld 5 UNIEKE queries, en die moet ik waarschijnlijk bijna allemaal herschrijven.

Dit vind ik niet zo erg, want dan kan ik ook alles wat sneller maken, maar dan weet ik wel wanneer ik het beste kan beginnen(weekendje, vakantie wat dan ook).

Bij voorbaat dank!
Gewijzigd op 01/01/1970 01:00:00 door Zero Dead
 
PHP hulp

PHP hulp

06/12/2019 01:08:29
 
Eris -

Eris -

18/06/2006 14:15:00
Quote Anchor link
De sql query zijn vaak niet echt verschillend en daarnaast als je gebruik had gemaakt van een PHP class voor de database afhandeling was het 10 misschien 20 min werk geweest om het aan te passen...
 
Arend a

Arend a

18/06/2006 14:19:00
Quote Anchor link
Volgens mij zijn de queries redelijk het zelfde, behalve dat je mysql_query moet veranderen is pg_query.

Misschien is het interessant om te kijken naar de pear class http://pear.php.net/manual/en/package.database.mdb2.php

Laat je niet verwarren door de moeilijke termen die er staan. Het komt er vooral op neer dat je met dat script eigenlijk een algemene sql opzet neemt en dat je achteraf nog kan aangeven welke databasetype hij moet verbinden, dus een soort van universele sql interface.

Mocht je later nog naar mssql of andere database typen willen overstappen kan dat in een keer.

De SQL code is volgens mij bijna altijd het zelfde. Ik denk dat je om die te herschrijven gewoon maar moet kijken welke de beste resultaten opleveren.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
require_once 'MDB2.php';

$dsn = array(
    'phptype'  => 'pgsql',
    'username' => 'someuser',
    'password' => 'apasswd',
    'hostspec' => 'localhost',
    'database' => 'thedb',
);


$options = array(
    'debug'       => 2,
    'portability' => MDB2_PORTABILITY_ALL,
);


$mdb2 =& MDB2::connect($dsn, $options);
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}


// Proceed with getting some data...
$res =& $mdb2->query('SELECT * FROM mytable');

// Get each row of data on each iteration until
// there are no more rows

while (($row = $res->fetchRow())) {
    // Assuming MDB2's default fetchmode is MDB2_FETCHMODE_ORDERED
    echo $row[0] . "\n";
}


// while (($one = $res->fetchOne())) {
//     echo $one . "\n";
// }

// Once you have a valid MDB2 object named $mdb2...

$sql  = "INSERT INTO clients (name, address) VALUES ($name, &#65533;address)";
$data = 53;

$affected =& $mdb2->exec($sql);

// Always check that result is not an error
if (PEAR::isError($affected)) {
    die($affected->getMessage());
}

?>


Dit is een beetje de standaard opzet van MDB2 class. Ik vind het persoonlijk erg prettig om mee te werken, is misschien het overwegen waard. Zoals je ziet kan je hier in de toekomst in het eerste gedeelte zo aangeven om wat voor type database het gaat.
 
Remco van Arkelen

Remco van Arkelen

18/06/2006 14:47:00
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.