WRInaute occasionnel
Bonjour,
Grâce à certains ici (et sur le forum Développez), j'ai réussi à écrire deux petits scripts pdo/mysqli. Ils fonctionnent bien, mais à vrai dire je n'ai pas vraiment compris la différence...
Tout de suite avec deux exemples simplifiés. En clair, il s'agit d'afficher une liste d'articles par ordre alphabétique. La seule différence est que le premier script les trie en plus en fonction d'une lettre retournée par l'URL :
SCRIPT n°1
SCRIPT n°2
ALORS QUESTIONS, S'IL-VOUS-PLAIT :
1) Pourquoi suis-je obligé dans les deux cas d'établir une connexion avec new PDO ? Cela signifie-t'il que je fais ainsi de la programmation objet ? Et pouvais-je faire autrement ?
2) Dans le premier cas, j'ai une requête préparée et pas dans l'autre. Le premier cas est celui qui récupère une variable $_GET[], par l'url donc. La requête préparée était-elle par suite indispensable ? Ou alors que pouvait-on faire d'autre ?
3) finalement, il n'est question nulle part de mysqli, ici ? C'est seulement dans le premier cas du POO avec une requête préparée et dans le second u POO, tout court ?
4) Et dans le second cas, pourquoi affiche-t'on le résultat de la requête "à l'ancienne", comme ça $res['field'], plutôt que comme ça $res->field ?
Merci d'avance pour vos réponses ! La pratique vaut mieux que mille articles...
Grâce à certains ici (et sur le forum Développez), j'ai réussi à écrire deux petits scripts pdo/mysqli. Ils fonctionnent bien, mais à vrai dire je n'ai pas vraiment compris la différence...
Tout de suite avec deux exemples simplifiés. En clair, il s'agit d'afficher une liste d'articles par ordre alphabétique. La seule différence est que le premier script les trie en plus en fonction d'une lettre retournée par l'URL :
SCRIPT n°1
Code:
$dbh = new PDO('mysql:host=localhost;dbname=dico','dicoco7', 'SD_q,[nX,');
/** on définit la requete sql */
$sql = "SELECT *
FROM cms_custom_database
WHERE field_2 LIKE :lettre
ORDER BY
record_dynamic ASC
";
$stmt = $dbh->prepare ($sql); /* On prépare la requête */
/** On prépare les paramètres */
$params = array(':lettre' => $_GET['lettre'].'%');
/** On execute la requete */
$stmt->execute($params);
while($livre=$params = $stmt->fetch(PDO::FETCH_OBJ))
{
echo''.$livre->field_33.''
}
SCRIPT n°2
Code:
echo'
$dbh = new PDO('mysql:host=localhost;dbname=dico','dicoco7', 'SD_q,[nX,');
$livres = $dbh->query('
SELECT
*
FROM
cms_custom_database_2
ORDER BY
primary_id_field
);
while ($livre = $livres->fetch())
{
echo'
'.$livre['primary_id_field'].''
}
ALORS QUESTIONS, S'IL-VOUS-PLAIT :
1) Pourquoi suis-je obligé dans les deux cas d'établir une connexion avec new PDO ? Cela signifie-t'il que je fais ainsi de la programmation objet ? Et pouvais-je faire autrement ?
2) Dans le premier cas, j'ai une requête préparée et pas dans l'autre. Le premier cas est celui qui récupère une variable $_GET[], par l'url donc. La requête préparée était-elle par suite indispensable ? Ou alors que pouvait-on faire d'autre ?
3) finalement, il n'est question nulle part de mysqli, ici ? C'est seulement dans le premier cas du POO avec une requête préparée et dans le second u POO, tout court ?
4) Et dans le second cas, pourquoi affiche-t'on le résultat de la requête "à l'ancienne", comme ça $res['field'], plutôt que comme ça $res->field ?
Merci d'avance pour vos réponses ! La pratique vaut mieux que mille articles...