Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Сабж:
Элементарный код:
$mysqli = new mysqli("localhost", "qqq", "111", "www");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
} else "DA, KONNECT EST!";
//$query = "select * from Fonts";
//$query = "call FontsList(1)";
if ($result = $mysqli->query($query)) {
echo "Select returned rows: " . $result->num_rows . "</br>";
while ($row = $result->fetch_row()) {
echo "Name = " . $row[1] . "</br>";
}
$result->close();
}
Если так:
$query = "select * from Fonts";
//$query = "call FontsList(1)";
то все ОК (это и понятно)
Но если так:
//$query = "select * from Fonts";
$query = "call FontsList(1)";
НИЧЕГО!!!
Вопрос вот в чем:
НИЧЕГО - это на хостинге, а У МЕНЯ ДОМА, на локальном сервере ВСЕ РАБОТАЕТ! Почему?
Парни, помогите любыми идеями, я ТРИ ДНЯ СИЖУ! Сайт из-за этого не могу выложить. Обидно, когда дома все работает, а на сервер установить не можешь.
Еще вопрос: почему при запуске в phpMyAdmin вылазит вот это:
#1312 - PROCEDURE gb_magicwool.FontsList can't return a result set in the given context
НО ПРИ ЗАПУСКЕ ОТКУДА УГОДНО ИЗ ДРУГОГО КЛИЕНТА(Например, dbForgeStudio или из штатного средства - mysql.exe) все работает гладко?
Я в недоумении.
Отредактированно dk13danger (21.07.2010 13:11:49)
Неактивен
Ошибку MySQL выведите на хостинге и посмотрите, что там написано. Например,
может не быть прав на выполнение процедур.
Неактивен
Выполнял в phpMyAdmin - получил:
#1312 - PROCEDURE gb_magicwool.FontsList can't return a result set in the given context
Я могу требовать права на использование ХП?
Неактивен
Пробуйте в поддержке хостинга. Обычно запрещено до тарифов типа VDS. Был бы я хостером, я бы поступил также.
Неактивен
Не подскажете, а каким запросом можно узнать( и можно ли вообще) какие у меня права. Т.е. в этом контексте узнать ЕСТЬ ЛИ ПРАВА НА ИСПОЛЬЗОВАНИЕ ХП?
Неактивен
Знаю, как проверю. Напишу ХП, которая что-то выполняет - и посмотрю.....
[ушел ваять хранимку...]
Неактивен
SHOW GRANTS;
Неактивен
Ввожу в phpMyAdmin:
CREATE PROCEDURE ddd()
begin
#set nocount on
#Вставка записи
INSERT INTO Pages(ID, Name, ClassName, Swf) VALUES
(777, "qqq", "www", "eee");
end;
Процедура миллион процентов верная, ибо у МЕНЯ СОЗДАЕТСЯ!
Ошибка:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6
Сделал как вы сказали. Ответ:
GRANT USAGE ON *.* TO 'моя база'@'%' IDENTIFIED BY PASSWORD '6c3273c44522116d'
GRANT ALL PRIVILEGES ON `юзер`.* TO 'моя база'@'%'
О чем все это говорит?
Почему я не могу создать ХП?
В пхпАдмине не могу найти свои ХП - вывод их там нет? Значит, все-таки я не могу создавать ХП???
Помогите...голова кругом.
Неактивен
Вспомните про delimiter?
Неактивен
? В пхпАдмине НИКОГДА ранее не работал.
dbForgeStudio и MySQLAdministrator только.
Прикладываю скрин пхпАдмина. Увидел на нем интересные моменты, может подскажете. Особенно интересует верхний правый угол "Используется расширение...".
НЕУЖЕЛИ НЕ ПОДКЛЮЧЕНА БИБЛИОТЕКА mysqli.dll? Ведь я выполняю ОБЫЧНЫЙ СЕЛЕКТ через объект mysqli???
Неактивен
А Вы СпЕцИаЛьНо ПИШЕТЕ так, ЧТО ТЯЖЕЛО читать? Не надо кричать, пожалуйста
phpMyAdmin использует другой модуль PHP, ну и что?
Неактивен
Да не специально. Просто я выделяю те слова, на которых хочу сделать акцент.
Если вам так удобно читать - то пожалуйста.
А где я кричал? Я, конечно, схожу с ума(ибо с воскресенья вечера не могу установить сайт), но кричать не собираюсь. За что и на кого?
Только вот бы мне понять один ничтожный вопрос:
1.Почему у меня дома все работает, а на хостинге нет.
2.Если в пхпАдмине не отображаются ХП - их там нет?
Про расширение понял. Получается с помощью пхпАдмина я не смогу вызвать, например, вот так процедуру:
call "какая-то процедура". Но вопрос не в этом, а выше.
Неактивен
ХП есть. Первый вопрос в силе. Может ли это быть из-за ОС?
Неактивен
Может быть что угодно. Если Вы не добавите проверку успешности выполнения
запросов, то код становится плохо переносимым и не устойчивым. Собственно,
именно из-за того, что Вы не выводите текст ошибки, Вы не знаете, что происходит.
Я всё еще считаю, что единственно правильное решение — сначала узнать текст
ошибки, а потом думать, почему так происходит
Неактивен
Страниц: 1