Код (Text): $query = "UPDATE tabl SET"; $id = $db->quote($id); foreach ($arr as $k => $v) { $query .= ' '.$k.' = 1,'; } $query = substr($query, 0, -1).' WHERE id= '. $id; // получаем запрос в виде UPDATE tabl SET text1= 1, text2 = 1, text3 = 1 WHERE id = '4' $s = $db->prepare($query); $s->execute(); Не хочет обновлять таблицу, где может быть косяк? $query в кавычки брать пробовал, не помогает. errorCode 00000 пишет..
Запятая лишняя --- Добавлено --- А, нет, отсекается после цикла. Текст не в кавычках? После выполнения запроса можно у мусклула узнать правду про ошибку выполнения запроса.
Пробовал и с кавычками и без. Как узнать, голова чет не варит уже? --- Добавлено --- полный кусок, таблица создается, но не апдейтится Код (Text): $db = new PDO("..." ); ... foreach($sim as $k=>$v){ $arr[$v] = '1'; } $res = "INSERT INTO tabl (theme, sub_theme, text, ds) VALUES (:theme, :sub_theme, :text, :ds)"; $data = $db->prepare($res); $data->bindParam(':theme', $theme, PDO::PARAM_STR); $data->bindParam(':sub_theme', $sub_theme, PDO::PARAM_STR); $data->bindParam(':text', $text, PDO::PARAM_STR); $data->bindParam(':ds', $ds, PDO::PARAM_STR); $data->execute(); $query = "UPDATE tabl SET"; $id = $db->quote($id); foreach ($arr as $k => $v) { $query .= ' '.$k.' = 1,'; } $query = substr($query, 0, -1).' WHERE id= '. $id; // получаем запрос в виде UPDATE tabl SET text1= 1, text2 = 1, text3 = 1 WHERE id = '4' $s = $db->prepare($query); $s->execute();
Текст ошибки проверял? Или сидим дальше ждём когда на форм пхп-программистов вдруг заглянут экстрасенсы, увлекающиеся пхп?
Перекопал все, заработало, но как этот говнокод к нормальному привести еще, будем думать) Код (Text): $simpt = array_unique($_POST['simpt']); foreach($simpt as $k=>$v){ $arr[$v] = '1'; } $arr['theme'] = $_POST['theme']; $arr['sub_theme'] = $_POST['sub_theme']; $arr['text'] = $_POST['dstext']; $arr['ds'] = $_POST['ds']; $keys = array_keys($arr); $keys = implode(", ", $keys); $val = array_values($arr); $val = implode("', '", $val); $val = "'". $val. "'"; $q = "INSERT INTO test"; $q .= ' ('.$keys.')'; $q .= ' VALUES (' . $val . ')'; print_r($q); $data = $db->prepare($q); $data->execute();
PHP: $arr['theme'] = $_POST['theme']; $arr['sub_theme'] = $_POST['sub_theme']; $arr['text'] = $_POST['dstext']; $arr['ds'] = $_POST['ds']; ты уверен что придут посты с указанными ключами ? PHP: $INPUTS = filter_input_array ( INPUT_POST, $ARGS ); PHP: $data = $db->prepare($q); $data->execute(); ты же юзаешь плейсхолдер ( подготовленные запросы ), но зачем то в запрос пихаешь грубо говоря "Отстой"