Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
 Аватар для djason
6 / 5 / 3
Регистрация: 23.08.2012
Сообщений: 143

Ошибка Call to undefined method mysqli::bind_param()

20.04.2017, 22:59. Показов 5542. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
И снова здравствуйте. Снова ошибки и снова поиски по их решению, гугл-яндекс именно по этой ошибке ничего не дал, поиск по сайту тоже.
К делу, вот сама ошибка "Call to undefined method mysqli::bind_param()", переводчиком тоже умею пользоваться и понимаю что ошибка означает вызов неопределенного метода, но почему, ведь все же объявлено?
Вот код:
PHP
1
2
3
4
5
$mysqli = new mysqli($host, $user, $pass, $site);
$mysqli->prepare('SELECT ? FROM user WERE name = ?');
$mysqli->bind_param('is', $id, $name);
$mysqli->execute();
$mysqli->close();
PHP 5.5
MySQL 5.6
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.04.2017, 22:59
Ответы с готовыми решениями:

Fatal error: Call to undefined method mysqli::assoc()
Доброго времени суток! Итак, я начинающий рнр программист и сегодня попытался написать код для cms. Скажу заранее, поискал на форуме,...

Ошибка Uncaught Error: Call to undefined method DB::prepare() in
Здравствуйте, имеется код: <?php class DB { public function __construct() { //подключает файл с параметрами ...

Ошибка Fatal error: Uncaught Error: Call to undefined method mysqli_stmt::rowCount()
Мне нужно вернуть количество строк, которые были затронуты в запросе UPDATE. Вылетает ошибка Fatal error: Uncaught Error: Call to...

7
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
20.04.2017, 23:05
Лучший ответ Сообщение было отмечено djason как решение

Решение

PHP
1
2
3
4
5
6
$mysqli = new mysqli($host, $user, $pass, $site);
$stmt = $mysqli->prepare('SELECT ? FROM user WERE name = ?');
$stmt->bind_param('ss', $id, $name);
$stmt->execute();
$stmt->close();
$mysqli->close();
Добавлено через 3 минуты
Цитата Сообщение от Jewbacabra Посмотреть сообщение
SELECT ? FROM user WERE name = ?
так нельзя с подготовленными выражениями
1
 Аватар для djason
6 / 5 / 3
Регистрация: 23.08.2012
Сообщений: 143
20.04.2017, 23:09  [ТС]
Jewbacabra, а как надо правильно?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
20.04.2017, 23:10
SQL
1
SELECT `id` FROM `user` WHERE `name` = ?
1
 Аватар для djason
6 / 5 / 3
Регистрация: 23.08.2012
Сообщений: 143
20.04.2017, 23:13  [ТС]
Jewbacabra, просто здесь в примере не указываются косые кавычки, вот и я не стал их ставить, обрадовался что все теперь все без кавычек будет, думал это фишка такая в mysqli.
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
20.04.2017, 23:18
Цитата Сообщение от djason Посмотреть сообщение
просто здесь в примере не указываются косые кавычки
дело не в кавычках, а в том что нельзя указать плейсходлер вместо id
Эти метки можно встраивать только в определенные места в выражении. Например, они допустимы в списке VALUES() выражения INSERT (чтобы задать значения столбцов для строки), или в операциях сравнения предложения WHERE для задания сравниваемого значения.

Тем не менее, эти метки недопустимы в качестве идентификаторов (таких как имена столбцов или таблиц), а также в списке псевдонимов столбцов предложения SELECT. Нельзя также использовать параметры для задания обоих операндов бинарного оператора (например, знак равенства =). Последнее ограничение необходимо, так как в противном случае невозможно будет определить тип операндов. Еще недопустимо сравнивать метку параметра с NULL выражением ? IS NULL. В основном, параметры допустимы в выражениях языка манипулирования данными (DML), и недопустимы в выражениях языка определения данных (DDL).
http://php.net/manual/ru/mysqli.prepare.php
1
 Аватар для djason
6 / 5 / 3
Регистрация: 23.08.2012
Сообщений: 143
22.04.2017, 19:34  [ТС]
Jewbacabra, что то я не совсем понял, уже весь день потратил на то что бы понять, как мне получить данные использовав при этом параметризованный запрос. Вот написал небольшую функцию:
PHP
1
2
3
4
5
6
7
8
9
10
11
function lastname($name){
    $query = "SELECT `name` FROM `lastname` WHERE `lastname` = ?";
    $mysqli = new mysqli(localhost, root, '', database);
    $stmt = $mysqli->prepare($query);
    $stmt->bind_param('s', $name);
    $stmt->execute();//выполняем запрос возвращает 1
    ///тут какой то код
    return ?;
    $stmt->close();//закрываем запрос
    $mysqli->close();//закрываем соединение
}
Ума не приложу, что писать после $stmt->execute(), вот выполнили мы запрос, как вот тут например написано, а как вывести то что возвратил запрос, ведь метод объекта $stmt->execute() возвращает только булев результат?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.04.2017, 19:45
У класса mysqli_stmt есть метод get_result, который возвращает объект класса, у которого есть fetch_* методы для получения строк запроса.

Есть еще способ - привязать переменные к полям результирующего запроса (на подобии привязки переменных к плейсхолдерам), с помощью bind_result и перебора строк с помощью метода fetch
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.04.2017, 19:45
Помогаю со студенческими работами здесь

Fatal error: Call to undefined method
У меня возникла проблема, в базе данных mssql находится таблица со столбцами типа datetime. не получается вытащить эти данные. Пишет ошибку...

Mysqli bind_param
получаю ошибку о том что bind_param неопределенный метод, хотя другие методы этого объекта работают. В чем может быть проблема? ...

MySQLi и bind_param нескольких параметров
Добрый, научите пользоваться плейсхолдерами в mysqli, пожалуйста! Есть проект, в нём активно используется именно mysqli. Переписывать всё...

Ошибка: Call to undefined function mysql_connect()
О чем говорит эта ошибка? Fatal error: Call to undefined function mysql_connect() in...

Ошибка Call to undefined function VALUES()
Всем доброго времени суток. Подскажите где я упустил ошибку? Никак не могу найти из за чего выскакивает вот эта ошибка Fatal error:...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru