comment obtenir se code en pdo ?
function verification_passe($passe)
{
$passe = mysql_real_escape_string(htmlspecialchars(trim($_POST['passe'])));
$query = mysql_query("SELECT passe FROM administration
WHERE passe='$passe'");
$rows = mysql_num_rows($query);
return $rows;
}
-> Tutoriel
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>
$sql = $bdd->query('SELECT ...');
$etat = $sql->rowCount();
Et on doit être pas trop mal de mon point de vue :)
//on peut faire plus court mais optons pour ce code pour une meilleure approche de PDO
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
$donnees = array('passe'=>$_POST['passe']);
$requete = "SELECT passe FROM administration WHERE passe = :passe";
$requete_preparee = $bdd->prepare($requete);
$requete_preparee->execute($donnees);
return $requete_preparee->rowCount();
Attention rowCount() ne fonctionne qu'avec les requêtes INSERT, UPDATE, DELETE mais pas avec SELECT
il faut faire
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
$requete = "SELECT passe FROM administration WHERE passe = :pwd";
$stmt->prepare($requete);
$stmt->execute( array(':pwd' => $passe));
$rows = $stmt->fetchAll();
$num_rows = count($rows);
j'aimerai savoir s'il est possible de metre le suivant dans un autre fichier pour eviter a chaque requet de l'ecrir?
<?php
try{
$bdd = new PDO('mysql:host=localhost;dbname=ceg;charset=utf8', 'root', '');
}catch (PDOexception $e){
echo "Une erreur de connection a la base de donne";
}
?>
ma page index contien des fonctions qui gere l'affichage de mes page qui sont tous engegistrees dans un docier pages. c'est au debut du fichier index que j'ai: include('includes/connect-bd.php'); le ficher connect-bd.php conntient le code de connection a la base de donnee system PDO. quand je renplace include('includes/connect-bd.php') par sql => include('includes/connect-bd.php'); ca ne marche pas.
fichier index.php
<?php
include('includes/connect-bd.php');
$page = htmlentities($_GET['page']);
include('functions/'.$page.'.func.php');
$pages = scandir('pages');
if(!empty($page)&& in_array($_GET['page'].".php",$pages))
{
$content = 'pages/'.$_GET['page'].".php";
}else
{
header("Location:index.php?page=acceuil");
}
?>
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="content">
<?php
include($content);
?>
</div>
</body>
</html>
fichier connect-bd
<?php
session_start();
try{
$bdd = new PDO('mysql:host=localhost;dbname=ceg;charset=utf8', 'root', '');
}catch (PDOexception $e){
echo "Une erreur de connection a la base de donne";
}
?>
@Huggy t'as essayé au moins avant ? Parce que chez moi, ça fonction très bien. De plus mysql_num_rows() ne fait exception à ton exception.
Et à regarder de près, connaitre le nombre d'éventuels enregistrements déjà effectués à priori serait plus utile [...]
@Silvère stOne, en effet ça fonctionne mais la doc dit que pour la plupart des bases ça ne fonctionne pas pour les requêtes Select
j'ai essayé en MyIsam, Innodb et ça marche, c'est le principal
merci d'avoir corrigé
Edit ; fonctionne avec Postgres mais pas MS SQL ni ODBC , dans ces 2 cas le pilote renvoie -1