Houston, on a eu un problème (Trying to get property of non-object)

Par Nairolf D, il y a 10 ans


Salut tout le monde, bon je cherche depuis hier soir j'ai passé la nuit dessus mais là je galère grave les amis.

L'erreur : (ok j'ai compris que cetait pas un objet mais on fait comment alors ??)

Notice: Trying to get property of non-object in C:\xampp\htdocs\admin\inc\functions.php on line 14 Notice: Trying to get property of non-object in C:\xampp\htdocs\admin\inc\functions.php on line 20

Ma fonction:

function new_album($name){ $pdo = new PDO('mysql:dbname=ldj;host=localhost', 'root', ''); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); $req = $pdo->query('SELECT * FROM albums WHERE name="'.$name.'"'); $data = $req->fetch(); if ($data->name != null) { echo '<div class="alert alert-danger alert-dismissible" role="alert"> <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button> <strong>Doh!</strong> Il y a déja un album avec ce nom. </div>'; } elseif ($data->name == null) { $req = $pdo->prepare("INSERT INTO albums SET name = ?, folder = ?"); $folder = 'gallerie/'.$name.''; $req->execute([$name, $folder]); mkdir('gallerie/'.$name.'',1715); debug($data); } }

2 réponses

JacobDelcroix, il y a 10 ans

C'est juste une notice donc pas très important en soit. Cependant as-tu fait un var_dump() de $data ? Pour voir ce que contient réellement la variable.
Car si l'album n'existe pas alors $data doit être vide, donc le premier test serait plûtot if(isset($data->name) && $data->name != null) et après juste un else suffit, pas besoin de elseif normalement.

Nairolf D, il y a 10 ans

Merci pour cette réponse Jacob :)