Bonjours,
j'essaie de lister les colonnes des chaque table de ma base.
Mais dans les réquète exécuté il semblerai que MDB2 n'entoure pas les nom de colonne par des guillemets.
Ce qui provoque des erreurs avec des table ayant des majuscules dans leur noms.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 $mdb2 = &MDB2::connect($dsn); if(PEAR::isError($mdb2)) { // Die with the user info message on failure for any reason die($mdb2->getuserinfo()); } $mdb2->setOption('portability', MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_FIX_CASE); // We have a valid connection, so let's do some magic! // Load the Reverse Module using MDB2's loadModule method $mdb2->loadModule('Reverse', null, true); $mdb2->loadModule('Manager'); $mdb2->setOption('portability', MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_FIX_CASE); print '<pre>'; print_r($mdb2->listTables()); foreach($mdb2->listTables() as $tableName) { print_r($mdb2->tableinfo($tableName)); } print '</pre>';
Code X : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Array ( [0] => CMG_Conf ) MDB2_Error Object ( [error_message_prefix] => [mode] => 1 [level] => 1024 [code] => -18 [message] => MDB2 Error: no such table [userinfo] => _doQuery: [Error message: Could not execute statement] [Last executed query: SELECT * FROM CMG_Conf LIMIT 1 OFFSET 0] [Native message: ERROR: relation "cmg_conf" does not exist]
J'ai mis
$mdb2->setOption('portability',
MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_FIX_CASE);
pour qu'il laisse le nom de colonne en majuscule
Quelqu'un sait si il ya une options à mettre sur MDB2 pour les quote autour des nom de colonne?
Partager