0

How do I run this as a PDO query?

$query = "SELECT * FROM `Top_10` WHERE DOB =". $date;
$result = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($result)==0){
while blah blah
}

I can run the PDO fetch array. But as soon as I do this, it fails.

Any ideas?

fvu
  • 32,488
  • 6
  • 61
  • 79
  • Too bad you don't show the equivalent PDO based code and tell us how it fails. Moreover `"SELECT * FROM ``Top_10`` WHERE DOB =". $date` is both horribly inefficient and SQL injection prone. The performance concern can be addressed by doing `"SELECT COUNT(*) FROM ``Top_10`` WHERE DOB = ..."` – fvu Jul 10 '13 at 16:14

1 Answers1

0
$dbh = new PDO("mysql:dbname=$dbname", $user, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);

try {
  $qry = $dbh->prepare('SELECT * FROM Top_10 WHERE DOB = ?');
  $qry->execute([$date]);

  while ($row = $qry->fetch()) {
    // blah blah blah
  }
}
catch (PDOException $e) {
  die($e->getMessage());
}
eggyal
  • 122,705
  • 18
  • 212
  • 237