Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011
Помог: 22 раз(а)
решил с mysql перейти на mysqli по многим причинам, но возник вопрос как передать несколько параметров в sqli запрос разных типов? погуглил ,почитал, но ненашел того что искал.
name - стрингового типа
id - числового
$stmt=$sql->prepare("SELECT name,quest FROM book WHERE id=? or name=?") or die('Ошибка запроса');//Отправляем шаблон
$stmt->bind_param('i',$id);//Устанавливаем параметры , установил в данном случии для id как для name задать cтринговый тип?
$id=4;
$name='Павел';
$stmt->execute() or die('Предупреждение о неудачном запросе');//Выполняем запрос
$stmt->bind_result($col1,$col2);//Сохраняем результат в массив
while($stmt->fetch()){
echo$col1.';'.$col2.'<br>';//Выводим результат пользователю.
}
$stmt->close();//Удаляем шаблон из памяти.
возник еще 1 вопрос как вернуть ассоциативный массив используя запрос в классе stmt
прочитал про класс result что он возвращает значение из стандартного класса mysqli и stmt
$result->fetch_assoc но при var_dump пишет ошибку
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
Помог: 69 раз(а)
Зачем Вы используете prepare? Запросы выполняются раза в полтора-два дольше простых запросов. Prepare предназначены для запросов в цикле. Для простых выборок использовать их IMXO не рационально
PATCH
Отправлено: 13 Июля, 2012 - 10:26:30
Частый посетитель
Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011
Помог: 22 раз(а)
DeepVarvar пишет:
И где вы его нашли?
что имено? если вы про объект то сам не понимаю не много .
объект $sql я объявлял от класса mysqli в конструктор которого передавал там нужные свойства для соединения
но вот как создался новый объект $stmt я подумал что он уже заранее создан)) т.к есть mysqli_stmt следовательно я подумал что есть и $result объект)) видно не допонимаю немного логики работы) в mysqli ))
Зачем Вы используете prepare? Запросы выполняются раза в полтора-два дольше простых запросов. Prepare предназначены для запросов в цикле. Для простых выборок использовать их IMXO не рационально
почитал на досуге ,что prepare может и медленный, но считается самый защищеный метод передачи sql запроса , однако стоит заметить где вы увидели в моем sql запросе одну запись? там как бы целую таблицу выводит , имхо в цикле будет выводить, var_dump для отладки.
tuareg
Отправлено: 13 Июля, 2012 - 10:39:36
Участник
Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010
$stmt=$sql->prepare("SELECT name,quest FROM book ");//Отправляем шаблон
$stmt->execute() or die("Предупреждение о неудачном запросе");//Выполняем запрос
var_dump($result->fetch_assoc());//С чего $result когда Вы используете $stmt ?
$stmt->close();
PATCH
Отправлено: 13 Июля, 2012 - 11:05:24
Частый посетитель
Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011
Помог: 22 раз(а)
в $stmt нету так называемого ассоциативного массива а $result 'mysqli_result — объединяет функции для получения результатов запросов, сделанных с помощью mysqli или mysqli_stmt.' воть инфа с http://habrahabr[dot]ru/post/141127/
DelphinPRO
Отправлено: 13 Июля, 2012 - 12:05:39
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
PATCH пишет:
но возник вопрос как передать несколько параметров в sqli запрос разных типов?
Покинул форум
Сообщений всего: 924
Дата рег-ции: Апр. 2011
Помог: 22 раз(а)
armancho7777777 пишет:
По каким, если не секрет?
считается что он быстрее стандартного Mysql да и к тому же можно объявить как объект + при использовании mysqli_prepare (хоть функция и считается немного медленной, но считается более защищенной от sql инъекций) + в 6 версии php говорят уберут стандартную библиотеку mysql будет pdo и mysqli
DelphinPRO
Отправлено: 13 Июля, 2012 - 20:50:31
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
armancho7777777, очевидно же. mysql_* официально объявлен устаревшим и рано или поздно будет полностью выпилен из php. Одного этого достаточно, чтобы им не пользоваться. К тожу mysqli имеет помимо ОО и функциональный апи, так что переход может стать максимально безболезненным. ;)
----- Чем больше узнаю, тем больше я не знаю.
zezst
Отправлено: 15 Июля, 2012 - 01:52:58
Новичок
Покинул форум
Сообщений всего: 10
Дата рег-ции: Июль 2012 Откуда: ближнее замкадье
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.