Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 22.05.2016
Сообщений: 53
1

Invalid parameter number: number of bound variables does not match number of tokens

08.04.2018, 00:51. Показов 2869. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу решить ошибку:
Invalid parameter number: number of bound variables does not match number of tokens
Указывает на : if ($result->execute())
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$sql = 'INSERT INTO product '
                . '(name, code, price, old_price, category_id, brand, brand_id, availability,'
                . 'description, total_length, blade_length, blade_width, gage_blade, steel, hardness, material, is_new, is_recommended, status)'
                . 'VALUES '
                . '(:name, :code, :price, :old_price, :category_id, :brand, :brand_id, :availability,'
                . ':description, :total_length, : blade_length, :blade_width, :gage_blade, :steel, :hardness, :material, :is_new, :is_recommended, :status)';
 
        // Получение и возврат результатов. Используется подготовленный запрос
        $result = $db->prepare($sql);
        $result->bindParam(':name', $options['name'], PDO::PARAM_STR);
        $result->bindParam(':code', $options['code'], PDO::PARAM_STR);
        $result->bindParam(':price', $options['price'], PDO::PARAM_INT);
        $result->bindParam(':old_price', $options['old_price'], PDO::PARAM_INT);
        $result->bindParam(':category_id', $options['category_id'], PDO::PARAM_INT);
        $result->bindParam(':brand', $options['brand'], PDO::PARAM_STR);
        $result->bindParam(':brand_id', $options['brand_id'], PDO::PARAM_INT);
        $result->bindParam(':availability', $options['availability'], PDO::PARAM_INT);
        $result->bindParam(':description', $options['description'], PDO::PARAM_STR);
        $result->bindParam(':total_length', $options['total_length'], PDO::PARAM_INT);
        $result->bindParam(':blade_length', $options['blade_length'], PDO::PARAM_INT);
        $result->bindParam(':blade_width', $options['blade_width'], PDO::PARAM_INT);
        $result->bindParam(':gage_blade', $options['gage_blade'], PDO::PARAM_INT);
        $result->bindParam(':steel', $options['steel'], PDO::PARAM_STR);
        $result->bindParam(':hardness', $options['hardness'], PDO::PARAM_STR);
        $result->bindParam(':material', $options['material'], PDO::PARAM_STR);
        $result->bindParam(':is_new', $options['is_new'], PDO::PARAM_INT);
        $result->bindParam(':is_recommended', $options['is_recommended'], PDO::PARAM_INT);
        $result->bindParam(':status', $options['status'], PDO::PARAM_INT);
        if ($result->execute()) {
            // Если запрос выполенен успешно, возвращаем id добавленной записи
            return $db->lastInsertId();
        }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2018, 00:51
Ответы с готовыми решениями:

Fatal error - Invalid parameter number: number of bound variables does not match number of tokens'
$pass = md5($_POST); $email = $_POST; $login = $_POST; $sex = $_POST;...

Invalid parameter number: number of bound variables does not match number of tokens
запрос $conn = connect_to_db(); $stmt = $conn->prepare("INSERT INTO brandaccounts...

Number of variables doesn't match number of parameters in prepared statement
Собственно, код $query = mysqli_prepare($db, "SELECT * FROM `users_db` WHERE `user_name`='?' ||...

Int number = 2; Console.WriteLine(++number - number-- * ++number); Выводит -6; Как ?
Знающие, объясните, пожалуйста. Каким чудом тут получается -6 ? O_o int number = 2; ...

10
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.04.2018, 00:56 2
Цитата Сообщение от Mad1k Посмотреть сообщение
Invalid parameter number: number of bound variables does not match number of tokens
Количество установленных значений параметров не совпадает с количеством параметров в запросе
0
0 / 0 / 0
Регистрация: 22.05.2016
Сообщений: 53
08.04.2018, 01:03  [ТС] 3
Jewbacabra, Оно вроде совпадает, если видите, покажите в коде ошибку пожалуйста.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.04.2018, 01:10 4
Цитата Сообщение от Mad1k Посмотреть сообщение
если видите, покажите в коде ошибку пожалуйста.
Вижу что name является ключевым словом и должно быть заключено в обратные кавычки ` (верно для mysql). Лучше все названия таблиц и столбцов заключить в них.
PHP
1
var_dump($options);
все ли ключи там есть?
0
0 / 0 / 0
Регистрация: 22.05.2016
Сообщений: 53
08.04.2018, 01:14  [ТС] 5
Jewbacabra, Ключи все есть, а где конкретно заключить в обратные кавычки?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.04.2018, 01:15 6
Цитата Сообщение от Mad1k Посмотреть сообщение
а где конкретно заключить в обратные кавычки?
В тексте запроса
0
0 / 0 / 0
Регистрация: 22.05.2016
Сообщений: 53
08.04.2018, 01:29  [ТС] 7
Jewbacabra, Всё равно
Миниатюры
Invalid parameter number: number of bound variables does not match number of tokens  
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.04.2018, 01:35 8
Лучший ответ Сообщение было отмечено Mad1k как решение

Решение

$sql = 'INSERT INTO product '
. '(name, code, price, old_price, category_id, brand, brand_id, availability,'
. 'description, total_length, blade_length, blade_width, gage_blade, steel, hardness, material, is_new, is_recommended, status)'
. 'VALUES '
. '(:name, :code, :price, :old_price, :category_id, :brand, :brand_id, :availability,'
. ':description, :total_length, : blade_length, :blade_width, :gage_blade, :steel, :hardness, :material, :is_new, :is_recommended, :status)';
1
0 / 0 / 0
Регистрация: 22.05.2016
Сообщений: 53
08.04.2018, 01:41  [ТС] 9
Jewbacabra, Заменил на Ваш полностью, ничего не изменилось
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.04.2018, 01:44 10
Цитата Сообщение от Mad1k Посмотреть сообщение
Заменил на Ваш полностью
на мой что? Я ошибку выделил в не моем запросе - там пробел после :
1
0 / 0 / 0
Регистрация: 22.05.2016
Сообщений: 53
08.04.2018, 01:48  [ТС] 11
Jewbacabra, Извините, не заметил вовсе( Спасибо
0
08.04.2018, 01:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2018, 01:48
Помогаю со студенческими работами здесь

Что значит эта строка return number == 1 ? 1 : (Foo(number - 1) + Foo(number - 2); ?
return number == 1 ? 1 : (Foo(number - 1) + Foo(number - 2));

PDO Invalid parameter number
вот запрос: $stmt = $conn_string->prepare("INSERT INTO `backup` (`logmarker`, `source`,...

Ошибка в PDO с INSERT INTO: SQLSTATE[HY093]: Invalid parameter number
Вот такая ошибка выскакивает: Warning: PDOStatement::execute(): SQLSTATE: Invalid parameter...

Найти среди записей number ту, в которой number самый большой
если так делать то виводит какието нули, што делать? type tpidr = record avtor:string;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru