Подскажите пожалуйста, где я допустил ошибку в скрипте? Исходные данные: Есть таблица в mysql допустим users. Следующего вида: name | password Я добавил в эту таблицу столбик group, теперь таблица выглядит так: name | password | group Теперь мне нужно назначить группы всем учреждениям в этой таблице. Допустим есть пять учреждений, которым нужно присвоить группу "A". Запускаю php скрипт: Код (Text): <?php #################################################################################### # Подключение к БД MySQL $db_host = "localhost"; $db_user = "reken"; $db_password = "**********"; $db_base = 'start'; $mysqli = new mysqli($db_host,$db_user,$db_password,$db_base); $mysqli->set_charset("utf8"); // Osibka podkl if ($mysqli->connect_error) { die('ERROR : ('. $mysqli->connect_errno .') '. $mysqli->connect_error); } ##################################################################################### ####################### Заполняем группу в таблице users ## Массив с учреждениями группы A $A = array("СОШ1", "СОШ2", "СОШ3", "СОШ4", "СОШ5"); ## Добавляем запись в БД foreach ($A as $value){ $result = $mysqli->query("UPDATE users SET group ='A' WHERE name = '$value'"); } После выполнения скрипта, колонка group в таблице не меняется...
1. лучше делать через IN без циклов Код (Text): $values = implode("','",$A); $mysqli->query("UPDATE users SET group ='A' WHERE name IN('$values')"); 2. Мы не знаем вашу БД, может нет таких имен
Спасибо за помощь В таблице users есть имя СОШ1 У меня даже простой скрипт не вносит изменения в таблицу users... Код (Text): $result = $mysqli->query("UPDATE users SET group ='A' WHERE name = 'СОШ1'"); Я где то опечатку допускаю? Или в чем может быть дело? Почему скрипт не добавляет значение A для СОШ1 в колонку group таблицы users
Заметил следующее... Не важно в какой таблице, во всех что у меня есть в базе... Если пытаюсь обновить информацию в столбце, который был в таблице изначально (в момент создания таблицы), то скрипт успешно отрабатывает и вносит изменения. А вот если пытаюсь обновить информацию в столбце, которого изначально не было в таблице (столбец был добавлен позже), то тот же скрипт не отрабатывает, а ругается что я допустил синтаксическую ошибку... P.S. Добавлял столбик в таблицу не через php, а напрямую на серваке, через терминал: Код (Text): alter table users add `group` text NOT NULL; Вот такую ошибку вижу при запуске php скрипта Код (Text): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
Если хотите чтобы помогли - покажите структуру БД, где какие поля, каких типов ид другие опции - покажите ошибку полностью, а не только ее кусок. Там дальше будет показан конкретный SQL запрос вызвавший ошибку и зачем тип text ??? я думаю группы не более 10-20 ну 100 символов, так и задайте varchar(50)
По поводу varchar(50) согласен...Переделаю Структура таблицы users Код (Text): | Field | Type | Null | Key | Default | Extra | +----------+------+------+-----+---------+-------+ | name | text | NO | | NULL | | | password | text | NO | | NULL | | | group | text | NO | | NULL | | +----------+------+------+-----+---------+-------+ 3 rows in set (0.00 sec) Скрипт на котором вылетает ошибка: Код (Text): $result = $mysqli->query("UPDATE `users` SET group = 'A' WHERE name = 'СОШ1'"); Полное содержание ошибки: Код (Text): ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group = 'A' WHERE name = 'СОШ1'' at line 1