Неработает INSERT INTO в PDO

Статус
В этой теме нельзя размещать новые ответы.

sanu0074

Новичок
Такая нарисовалась ситуация, делаю INSERT запрос к БД, возвращает TRUE, но запись в БД не вставляется, уже проверил все переменные, их содержание, все в идеале, а чет всерано не работает:

PHP:
$table="tbl_1";
$fields="`name`=?,`cat`=?,`link`=?;
$params=array("fileName","ctg","file_link");

		$q=$this->dbh->prepare("INSERT INTO `".$table."` SET ".$fields.""));
		$q->execute($params);
		if($q==TRUE){return TRUE;}else{return FALSE;}
В БД все норм с полями (типы данных), запросы на обновление и удаление работают без проблем.
В чем может быть косяк? как обойти эту проблему? (реализовать нужно исключительно этим способом).
p.s. мой конфиг: php 5.5.3, apache 2.4, mysql 5.6
Вобще незнаю что делать с этим(((( главное возвращает TRUE!!!!
 

sanu0074

Новичок
так же errorInfo() и errorCode() показывают что ошибок не произошло!
 

bbldzr

Новичок
Добавьте для начала кавычку в конце второй строчки. Этот код в первом посте актуальный, вообще?
 

Hello

Новичок
Явно не в этом проблема, давай без флуда...
Я думаю может в самом mysql чтото.... Вобще нет идей
Это был наводящий вопрос.
У тебя проблема в условии.
Объект всегда будет преобразовываться в true.

PHP:
$q=$this->dbh->prepare("INSERT INTO `".$table."` SET ".$fields.""));
if($q->execute($params)){return TRUE;}else{return FALSE;}
 

Фанат

oncle terrible
Команда форума
главное возвращает TRUE!!!!
А что ты хотел от стейтмента, который был нормально инициализирован?
if($q==TRUE){return TRUE;}else{return FALSE;}
Я только одного не пойму - ты только на этот высокоинтеллектуальный код полагался в своих догадках, или все-таки в базе проверял - добавилась ли строка, или нет?
 

sanu0074

Новичок
А что ты хотел от стейтмента, который был нормально инициализирован?

Я только одного не пойму - ты только на этот высокоинтеллектуальный код полагался в своих догадках, или все-таки в базе проверял - добавилась ли строка, или нет?
В базе проверял, читай выше....
 

sanu0074

Новичок
Передалал так:
PHP:
$params = array( 'name' => 'fileName', 'cat' => 'ctg', 'link' => 'file_link' );  
 
$q=$this->dbh->("INSERT INTO ".$table." (name, cat, link) value (:name, :cat, :link)");  
$q->execute($params);
и тоже, толку ноль......!!!
непойму в чем причина..
 

Фанат

oncle terrible
Команда форума
все ответы даны, тему закрываю.
автору рекомендую больше читать и меньше писать
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху