J'ai une erreur concernant un simple envoi de données en db.
J'uilise cette même base et cette même table pour d'autres test et ça fonctionne très bien.
Là, je ne comprends pas vraiment d'où peut provenir l'erreur, si vous avez un idée...
Fatal error: Call to undefined method BaseNews::bdd() in blah blah blah\lib\BaseNews.class.php on line 20
Page news_manager.php
<?php
session_start();
function chargClass($class) { require 'lib/'.$class.'.class.php'; } spl_autoload_register('chargClass');
?>
<! DOCTYPE html>
<!-- le blah blah html -->
<div div="infoAddForm">
<?php
try {
$bdd = BDD::OPENBDD();
$bdd = ('SET NAMES utf8');
$news = new BaseNews($bdd);
if(isset($_POST['newsPreview']) || isset($_POST['newsSave'])) {
if(isset($_POST['newsPreview'])) { $subState = 1; }
if(isset($_POST['newsSave'])) { $subState = 2; }
$check = new Check();
$check->checkInputText($_POST['title'], 3, 50, 'titre');
$title = $check->getInputText();
if($title != '0') {
$check->checkInputContent($_POST['content'], 10, 2000, 'contenu');
$content = $check->getInputContent();
if($content != '0') {
$check->checkFilePicture($_FILES['picture'], Check::SIZE_MIDDLE, '../newsImage/', 'une illustration');
$picture = $check->getFilePicture();
if($picture != '0') {
if($subState == 1) {
$news->viewNews($title, $content, $picture);
}
else {
$news->addNews($title, $content, $picture); // C'EST LÀ QUE J'APPEL LA CLASSE QUI POSE PROBLÈME
}
}
}
}
}
}
catch(Exception $e) { die('blah blah blah.'.$e->getMessage()); }
?>
</div>
Ma classe BaseNews.class.php dans le dossier lib/<?php
class BaseNews
{
protected $bdd;
public function __construct($bdd) {
$this->bdd = $bdd;
}
public function addNews($title, $content, $picture) {
// LA LIGNE EN RAPPORT AVEC L'ERREUR
$newsPrepare = $this->bdd->prepare('INSERT INTO actu (title, picture, content, nbr_comment, act_date) VALUES (:title, :picture, :content, :nbr_comment, NOW())');
$newsArray = $newsPrepare->execute(array(
':title' => $title,
':content' => $content,
':picture' => $picture,
':nbr_comment' => 0
));
echo '<span class="correct">L\'actualité a bien été ajouté au site.</span>';
}
Ma classe BDD.class.php dans le dossier lib/
<?php
class BDD
{
public static function OPENBDD() {
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $bdd;
}
}
Merci par avance