0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 533 Просмотров
*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
Привествую всех!

В модуле пишу вот так, по логике все верно.

Код
   $db = JFactory::getDbo();
        $query = $db->getQuery(true);
        $query->insert('#__join_membership')
       ->columns('member_id, status, last_name,first_name,middle_name, district, university, year_ending, degree, workplace, user_position, email, phone')
        ->values('member_id', 'status', 'last_name', 'first_name', 'middle_name', 'district', 'university', 'year_ending', 'degree', '231', 'workplace', 'user_position', 'email', 'phone');
       
        $db->setQuery($query);
        $db->query()

ошибку в консоли отлавливаю "JDatabaseExceptionExecuting: Column count doesn't match value count at row 1". Значение ошибки понимаю, но как может быть не соотвествие кол. колонок значению?

Если тот же код но оставить одну колонку и значение все отлично добавляет, а  болше одного нет.

У кого есть какие идеи ?
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
Re: Вставка данных в БазуДанных
« Ответ #3 : 04.06.2019, 20:34:55 »
здра.
подозреваю, что базе не нравится, когда просят вставить в 13 полей 14 значений  ;D

Это я сюда закинул случайно лишний. А так реально два даже вставил. отвечаю два значение и 2 колонки и борода была.

Скриншот
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Re: Вставка данных в БазуДанных
« Ответ #4 : 04.06.2019, 20:39:53 »
базе не нравится, когда просят вставить в 13 полей 14 значений 
в 1 поле 14 ?
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Re: Вставка данных в БазуДанных
« Ответ #5 : 04.06.2019, 21:45:34 »
Код: php
$values = array('member_id', 'status', 'last_name', 'first_name', 'middle_name', 'district', 'university', 'year_ending', 'degree', 'workplace', 'user_position', 'email', 'phone');
...
->values(implode(',', $values));

https://cmscafe.ru/docs/joomla/developer/db/515-jdatabase-vstavka-obnovlenie-i-udalenie-dannykh
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вставка данных в БазуДанных
« Ответ #6 : 04.06.2019, 22:05:16 »
Код
$query->insert('#__join_membership')
->columns('member_id, status')
->values('member_id, status');
или
Код
$query->insert('#__join_membership')
->columns(['member_id', 'status'])
->values(['member_id, status']);
« Последнее редактирование: 04.06.2019, 22:24:39 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
Re: Вставка данных в БазуДанных
« Ответ #7 : 05.06.2019, 08:56:38 »
Код
$query->insert('#__join_membership')
->columns('member_id, status')
->values('member_id, status');
или
Код
$query->insert('#__join_membership')
->columns(['member_id', 'status'])
->values(['member_id, status']);

Оба ваших варианта работают, но почему в базу ничего не заносится, хотя мол обращение было и создается пустая строка в базе.

*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
Re: Вставка данных в БазуДанных
« Ответ #8 : 05.06.2019, 08:57:31 »
Код: php
$values = array('member_id', 'status', 'last_name', 'first_name', 'middle_name', 'district', 'university', 'year_ending', 'degree', 'workplace', 'user_position', 'email', 'phone');
...
->values(implode(',', $values));

https://cmscafe.ru/docs/joomla/developer/db/515-jdatabase-vstavka-obnovlenie-i-udalenie-dannykh
Такой вариант пробовал я тоже, и с того же сайта смотрел как все делать. Ошибка таже была.
*

pavel2950

  • Захожу иногда
  • 194
  • 3 / 0
Re: Вставка данных в БазуДанных
« Ответ #9 : 05.06.2019, 09:04:12 »
В общем заработало вот так!

Как значения обернул в $db->quote() так и все начало работать.

Код
  $db = JFactory::getDbo();

        $columns = array(
            'member_id',
            'last_name',
            'first_name',
            'middle_name'
        );


        $values = array(
            560,
            $db->quote($last_name),
            $db->quote($first_name),
            $db->quote($middle_name));         


        $query = $db->getQuery(true);
        $query->insert('#__join_membership')
            ->columns($db->quoteName($columns))
            ->values(implode(',', $values));
        $db->setQuery($query);
        $db->query();

Всем спасибо за отзывчивость!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Замена данных сайта на данные поддомена

Автор rezchik

Ответов: 5
Просмотров: 349
Последний ответ 05.02.2024, 11:45:36
от web1
Окно заполнение контактных данных

Автор Vlad1323

Ответов: 1
Просмотров: 369
Последний ответ 29.03.2023, 16:47:54
от arma
Окно заполнение контактных данных

Автор Vlad1323

Ответов: 0
Просмотров: 309
Последний ответ 29.03.2023, 01:15:03
от Vlad1323
Вставка кода видео в материал

Автор dedun

Ответов: 20
Просмотров: 7198
Последний ответ 12.03.2023, 16:13:31
от kochevnik
Базы данных

Автор rezchik

Ответов: 7
Просмотров: 368
Последний ответ 16.02.2023, 22:59:29
от rezchik