FAQ Zend Framework
FAQ Zend FrameworkConsultez toutes les FAQ
Nombre d'auteurs : 16, nombre de questions : 39, dernière mise à jour : 15 juin 2021
Zend Framework utilise PDO pour exécuter les requêtes SQL. Il y a plusieurs méthodes simples pour lancer une requête SELECT :
$select
=
$db
->
query
('
SELECT champ FROM table
'
);
$select
=
$db
->
select();
$select
->
from('
table
'
,
'
champ
'
);
La récupération du résultat se fait de la même manière pour les deux méthodes :
$rows
=
$select
->
fetchAll();
$rows contient tous les résutats de la requête sous forme de tableau (Array). Il ne reste plus qu'à appeler foreach dessus.
Il suffit d'appeler la fonction MAX() dans la liste des champs :
$select
=
$db
->
query
('
SELECT MAX(champ) FROM table
'
);
$max
=
$db
->
fetchOne($select
);
$select
=
$db
->
select();
$select
->
from('
table
'
,
'
MAX(champ)
'
);
$max
=
$db
->
fetchOne($select
);
Il est possible d'implémenter sa propre logique, mais il faut à ce moment là réécrire les méthodes en les surchargeant.
Après avoir appelé la méthode fetchAll(), le résultat est placé dans un tableau PHP. Il suffit donc d'appeler la fonction PHP count() sur ce résultat pour savoir combien de tuples sont retournés par la requête.
Le Zend Framework, en construisant les requêtes avec Zend_Db_Select, ajoute des guillemets pour protéger les noms des tables et des champs. SQL Server 7 n'aime pas du tout ce genre de requête, il les préfère sans guillemet.
$select
=
$db
->
select();
$select
->
select("
ma_table
"
,
array("
colonne1
"
) );
SELECT
"ma_table"
."colonne1"
FROM
"ma_table"
;
La 1ère solution consiste à faire un remplacement des quotes doubles par rien avant d'exécuter la requête.
La 2ème consiste à activer l'option quoted identifier sur la table que vous souhaitez requêter dans MS SQL Server 7.