Projet images en POO PDO MYSQL
Bonsoir, J'ai une erreur de ce type lors d'un enregistrement dans une BDD => Remarque : tentative d'accès au décalage du tableau sur la valeur de type bool dans C:\wamp64\www\projet-images\class\imageManager.php à la ligne 85, 86, 87, 88
Voici mon code :
class/imageManager.php
Code:
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
<?php
class imageManager {
private $db;
public function __construct($db) {
$this->setDb($db);
}
public function setDb(PDO $dbh) {
return $this->db = $dbh;
}
public function addImage(Image $image) {
try {
$sql = 'INSERT INTO images(title, descr, filename) VALUES(:title, :descr, :filename)';
$stmnt = $this->db->prepare($sql);
$title = htmlspecialchars($image->getTitle());
$descr = htmlspecialchars($image->getDescr());
$filename = htmlspecialchars($image->getFilename());
$stmnt->bindParam(':title', $title);
$stmnt->bindParam(':descr', $descr);
$stmnt->bindParam(':filename', $filename);
$stmnt->execute();
}
catch(PDOException $e) {
echo 'Erreur de requête ' . $e->getMessage();
}
}
public function getImages($image_dir) {
$i = 0;
if($handle = opendir($image_dir)) {
while(false !== ($entry = readdir($handle))) {
if($entry != "." && $entry != "..") {
$i++;
$images[$i]['filename'] = $entry;
$image_data = $this->getImageData($entry);
$images[$i]['title'] = $image_data['title'];
$images[$i]['descr'] = $image_data['descr'];
}
}
}
closedir($handle);
return $images;
}
public function getImageData($filename) {
try {
$sql = 'SELECT id, title, descr, filename FROM images WHERE filename = :filename';
$stmnt = $this->db->prepare($sql);
$stmnt->execute(array(
':filename' => $filename
));
$row = $stmnt->fetch();
$image_data['id'] = $row['id'];
$image_data['title'] = $row['title'];
$image_data['descr'] = $row['descr'];
$image_data['filename'] = $row['filename'];
return $image_data;
}
catch(PDOException $e) {
echo 'Erreur de requête ' . $e->getMessage();
}
}
} |
Merci d'avance.