Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> mysqli prepare Как работать с это функцией?
alexander.korotkov  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 13
Пользователь №: 41280
На форуме: 2 года, 1 месяц, 24 дня
Карма:




Добрый день, новичек пока во всем этом. Мне сказали, что бы я при выполнение запросов к базе пользовался функцией prepare в mysqli. Я нашел, пример и описание.

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
printf("Не удалось подключиться: %s\n", mysqli_connect_error());
exit();
}

$city = "Amersfoort";

/* создаем подготавливаемый запрос */
$stmt = $mysqli->stmt_init();
if ($stmt->prepare("SELECT District FROM City WHERE Name=?")) {

/* привязываем переменные к параметрам */
$stmt->bind_param("s", $city);

/* выполняем запрос */
$stmt->execute();

/* привязываем результаты к переменным */
$stmt->bind_result($district);

/* выбираем данные из результата */
$stmt->fetch();

printf("%s находится в округе %s\n", $city, $district);

/* закрываем запрос */
$stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>


Этот пример впринципе работает, но нигде не написано, как всем этим пользоваться, как получить все результаты запроса, если условию удовлетворяет несколько записей из базы - в этом примере выводится только первая запись найденная в базе по этим условиям.

Или допустим я элементарно меняю запрос, пишу что-то типа SELECT * FROM City и уже ничего не работает. Подскажите пожалуйста, как со всем этим работать. P.S. не кидайте мне ссылки на анлгийские описания и статьи, я только по-русски и немного по-французски понимаю.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bestxp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



орангутанг
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2064
Пользователь №: 36605
На форуме: 4 года, 4 месяца, 9 дней
Карма: 113




$stmt->fetch(); на $stmt->fetchAll(); и на выходе у тебя массив объектов

а вообще читай доку на сайте php.net
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
stump  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1067
Пользователь №: 40808
На форуме: 2 года, 5 месяцев, 3 дня
Карма: 14




php.net есть как на французком так и на русском. там есть описание mysqli в РНР 5.5+ появилась функция prepare такая же как в PDO. Если php.net у тебя отключили Погугли работу с PDO и по аналогии работай с mysqli -> препаре.


--------------------
Трус не играет в хокей
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
alexander.korotkov  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 13
Пользователь №: 41280
На форуме: 2 года, 1 месяц, 24 дня
Карма:




Цитата (bestxp @ 22.05.2015 - 16:48)
$stmt->fetch(); на $stmt->fetchAll(); и на выходе у тебя массив объектов

а вообще читай доку на сайте php.net

Ну такой метод к сожалению не работает, я уже пробовал.
Fatal error: Call to undefined method mysqli_stmt::fetchAll() in Z:\home\myblog\www\test.php on line 19
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
alexander.korotkov  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 13
Пользователь №: 41280
На форуме: 2 года, 1 месяц, 24 дня
Карма:




Цитата (Гость_inpost @ 22.05.2015 - 16:49)
alexander.korotkov
нужно учить анг. какие проблемы с ним? море курсов в любом городе.

кроме как ссылки на доку по mysqli, ничего не могу скинуть(

Да согласен, нужно учить анлгийский и курсов хоть попой ешь)) Но вот появилось задание, с которым нужно справиться в короткие сроки и чувствую я, что не успею за эти сроки записаться на курсы и выучить английский))
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
alexander.korotkov  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 13
Пользователь №: 41280
На форуме: 2 года, 1 месяц, 24 дня
Карма:




Цитата (stump @ 22.05.2015 - 16:58)
php.net есть как на французком так и на русском. там есть описание mysqli в РНР 5.5+ появилась функция prepare такая же как в PDO. Если php.net у тебя отключили Погугли работу с PDO и по аналогии работай с mysqli -> препаре.

Да придется этим и заниматься все выходные, просто думал, что есть какие-то готовые решения. Ладно спасибо, буду дальше поиски продолжать, а вообще к примеру нужно вот что сделать, есть вот такой кусок кода:

<?php
//Выводим меню с категориями
$result = $db->query("SELECT * FROM categorys");

while($row = $result->fetch_array())
{
echo "<li><a href=index.php?category=".$row['id']." class='button'>".$row['name']."</a></li>";
}
echo "<li><a href='index.php' class='button'>ВСЕ</a></li>";
?>


Нужно все это сделать через mysqli->prepare, кончено в данном случае нет смысла этого делать, здесь итак невозможна SQL инъекция, но на сайте есть еще много похожих частей кода. P.S. $db это класс в котором организовано подключение к БД с помощью mysqli и несколmко методов.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
stump  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1067
Пользователь №: 40808
На форуме: 2 года, 5 месяцев, 3 дня
Карма: 14






--------------------
Трус не играет в хокей
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
alexander.korotkov  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 13
Пользователь №: 41280
На форуме: 2 года, 1 месяц, 24 дня
Карма:




Цитата (stump @ 22.05.2015 - 17:55)
https://php.net/manual/ru/mysqli-stmt.bind-result.php
https://php.net/manual/ru/mysqli-stmt.get-result.php
https://php.net/manual/ru/mysqli-stmt.fetch.php

Когда отключают php.net тогда конечно беда...

ООО прямо в яблочко!!! То что искал, наконец-то!!! user posted image
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26422
Пользователь №: 21350
На форуме: 7 лет, 3 месяца, 11 дней
Карма: 739




Гость_Сергей
а здесь не институт благородных девиц.

Цитата
А Вы, когда даёте отсылки к php.net - самому неудобному ресурсу

это официальный мануал яп, на котором он не знает что и как сделать.

или ты думаешь люди годами пытались понять, что там написано, а потом от деда к отцу, от отца к сыну - эта инфа на передаётся?

Цитата
А если сами ничего не знаете, то и зачем тогда пишете..

демократия епта.


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса