@vtema

Что за непонятная ошибка в mysql ?

Есть такой код обработки post запроса
$add_group_name = $_POST['name'];
        $add_group_tablename = $_POST['tablename'];
        $add_group_sabjects = $_POST['sabjects'];

        $cn = explode(', ', $add_group_sabjects);
        foreach ($cn as &$val) {
        $sabjects_save = "$val text, ";
        } 
        // Подключение к БД
        include 'config.php';
        mysql_connect("$bd_host", "$bd_user", "$bd_pass") or die(mysql_error());
        mysql_select_db($bd_current);
        mysql_query("
            CREATE TABLE $add_group_tablename (name text, $sabjects_save)") or die(mysql_error());
        mysql_close();
        
        // Возвращаем на главную с положительным статусом
        header("Location: /index.php?status=1");


$add_group_name и $add_group_tablename - значения инпутов
$add_group_sabjects - значения textarea в виде списка слов через запятую.

Задача кода создать таблицу $add_group_tablename со столбцами
name, значение из textarea1, значение из textarea2, значение из textarea n


Если значения столбцов делать не переменными, а сразу написать словами - всё работает, но при выводе их из цикла перебора массива со значениями textarea - ничего не работает. Пишет ошибку
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 'средства ВК text, )' at line 1
  • Вопрос задан
  • 2319 просмотров
Пригласить эксперта
Ответы на вопрос 3
FanatPHP
@FanatPHP
Чебуратор тега РНР
Этот код нельзя исправить.
Его можно только выкинуть на помойку, весь.

Весь этот код - ад и преступление против человечности.
Ответ написан
Комментировать
thewind
@thewind
php программист, front / backend developer
Так значения из массива приходят в кривой кодировке, вам об этом и пишут в ошибке. Скрипт в utf8? Массив лежит в другом файле с кодировкой windows-1251?
Ответ написан
Комментировать
@ldvldv
1. Запятая лишняя " text, ) "
2.
foreach ($cn as &$val) {
     $sabjects_save = "$val text, "; // 
}

в $sabjects_save будет только последнее значение массива

3. Выведите значение переменной $sabjects_save, будет понятнее
4. sabject -> subject
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы