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

> mysqli_prepare select
maruo  
 ۩  [x] Дата
Цитировать сообщение

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



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

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 24 дня
Карма: 1




В качестве защиты от sql иньекций, вычитал про подготовленные запросы и prepare ,
Решил использовать ее.
С инсертом проблем было мало но разобрался.
А вот сделать SELECT не совсем получается.



$query = mysqli_prepare($link,"SELECT name_city FROM city_full_base WHERE name_city=? ")or die(mysqli_error($link));

mysqli_stmt_bind_param($query, 's', $new_city)or die(mysqli_error($link));

mysqli_stmt_execute($query)or die(mysqli_error($link));

mysqli_stmt_bind_result($query, $city);

/* получаем значения */
mysqli_stmt_fetch($query);
echo'<pre>';
print_r($query);
echo'</pre>';
if(mysqli_fetch_row($query) == 0){
$_SESSION['msgs'] = '<p id="bad">Город: '.$new_city.' уже существует!</p>';
header("Location:".$_SERVER['HTTP_REFERER']);
exit();



Нужно узнать вернул ли Запрос что то. И от этого делать дальнейшие действия.

fetch_row Выдает ошибку ибо нам приходит объект как я понял
mysqli_stmt Object
(
[affected_rows] => -1
[insert_id] => 0
[num_rows] => 0
[param_count] => 1
[field_count] => 1
[errno] => 0
[error] =>
[error_list] => Array
(
)

[sqlstate] => 00000
[id] => 1
)


Не сложно Объясните суть проблемы?
И стоит ли использовать prepare вообще? И в каких целях

Это сообщение отредактировал maruo - 3.03.2016 - 20:15
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

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



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2110
Пользователь №: 27172
На форуме: 5 лет, 8 месяцев, 6 дней
Карма: 70




Может лучше PDO? мне кажется он более популярный и удобный.

$query = $PDO->prepare("SELECT `name_city` FROM `city_full_base` WHERE `name_city` = :name_city");
$query->execute([
':name_city' => $new_city
]);
$result = $query->fetch();




--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maruo  
 ۩  Дата
Цитировать сообщение

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



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

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 324
Пользователь №: 37433
На форуме: 3 года, 6 месяцев, 24 дня
Карма: 1




Arh Да дело в том перед тем как уйди на ПДО я сначала сидел на mysql
Потом он устарел, начал осваивать mysqli, Не до конца еще освоил его, а тут сразу уходи на PDO не освоив mysqli.
А теперь еще и prepare( но он то хоть связан с mysqli)
Я знаю PDO очень сейчас популярен, но давайте оставим это на потом когда я уже освою mysqli
.
Объясните мне когда и что лучше использовать prepre или mysqli_real_escape_string?

Это сообщение отредактировал maruo - 3.03.2016 - 20:43
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

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



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2110
Пользователь №: 27172
На форуме: 5 лет, 8 месяцев, 6 дней
Карма: 70




По mysqli ничего не могу сказать. Давным давно делал выбор между им и pdo, выбрал pdo, остальным незаморачивался)


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

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



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22693
Пользователь №: 20039
На форуме: 7 лет
Карма: 599




mysqli_num_rows возвращает количество вернувшихся записей же ж.


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

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

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