Форум программистов, компьютерный форум, киберфорум
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. Показов 5574. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru