PDO INSERT не могу подготовить запрос к БД
Пытаюсь добавить запись в таблицу через pdo, а именно через метод prepare, но у меня вместо плейсходеров не вставляются данные. Пробовал через ?, а также передавать как массив методу execute, но не работает.
Вот момент вызова:
$sql = "INSERT INTO `comments` (`author`,`nickname`,`email`,`text`,`article_id`) VALUES (':name', ':nickname', ':email', ':text', {$article_id}) ";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':name',$_POST['name']);
$stmt->bindParam(':nickname',$_POST['nickname']);
$stmt->bindParam(':email',$_POST['email']);
$stmt->bindParam(':text',$_POST['text']);
$stmt->execute( );
Вот конфиг:
$config = array(
'title' => '',
'vk_url' => '',
'db' => array(
'host' => 'localhost',
'driver' => 'mysql',
'db_name' => 'test_blog',
'username' => 'root',
'pass' => 'toor',
'charset' => 'utf8'
)
);
$options = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION];
try{
$pdo = new PDO("{$config['db']['driver']}:host={$config['db']['host']};dbname={$config['db']['db_name']};charset={$config['db']['charset']}", $config['db']['username'], $config['db']['pass'], $options);
}
catch(PDOException $e)
{
die("I can`t to connecting into database, please try later");
}
Вот что поподает в базу: phpmyadmin.
Ответы (1 шт):
Автор решения: MAX
→ Ссылка
ошибка заключалась в кавычках вокруг плейсоходеров и двоеточиях при подставлении самих данных.
вот исправленный код.
$sql = "INSERT INTO `comments` (`author`,`nickname`,`email`,`text`,`article_id`) VALUES (:name , :nickname , :email , :text , {$article_id}) ";
$stmt = $pdo->prepare($sql);
$stmt->bindParam('name',$_POST['name']);
$stmt->bindParam('nickname',$_POST['nickname']);
$stmt->bindParam('email',$_POST['email']);
$stmt->bindParam('text',$_POST['text']);
$stmt->execute( );