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

> Помоги вывести на php странице запрос к mssql SP, PHP, MSSQL Stored Procedure
Kusss  
Дата
Цитировать сообщение

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



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

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




По моему ты фигней страдаешь. Сделай обычный SQL запрос и вытащи значения.
ну как в мануале.
http://php.net/manual/en/function.sqlsrv-fetch-array.php

$sql = "SELECT FirstName, LastName FROM SomeTable";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
echo $row['LastName'].", ".$row['FirstName']."<br />";
}

sqlsrv_free_stmt( $stmt);
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Dimych071190  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 12
Пользователь №: 42486
На форуме: 10 месяцев, 3 дня
Карма:




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

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 12
Пользователь №: 42486
На форуме: 10 месяцев, 3 дня
Карма:




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

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 3
Пользователь №: 42518
На форуме: 9 месяцев, 25 дней
Карма:




Сам столкнулся с такой проблемой. mssql функции не работают в php 5.3 и выше,
замена sqlsrv, скачать библиотеку можно с сайта Microsoft . Нашел на забугорном форуме как человек делает запрос к хранимой процедуре, может вам поможет.




$tsql_callSP = "{call usp_sessions_set_terms( ?, ?, ? )}";

$id_language = $id_language;
$term = '';
$native_term = '';

$params = array(
array($id_language,SQLSRV_PARAM_IN),
array($term, SQLSRV_PARAM_OUT),
array($native_term, SQLSRV_PARAM_OUT)
);


/* Execute the query. */
$stmt3 = sqlsrv_query( $conn, $tsql_callSP, $params);

if( $stmt3 === false ) {
echo "Error in executing statement 3.\n";
die( print_r( sqlsrv_errors(), true)); }

/* Display the value of the output parameters. */
while ($obj=sqlsrv_fetch_object($stmt3)) {
// SET PARAMETERS - SET TERMS
echo $obj->term;
}

/*Free the statement and connection resources. */
sqlsrv_free_stmt( $stmt3);
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

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



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

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 11 дней
Карма: 170




Цитата (Dimych071190 @ 4.02.2016 - 09:20)
$sql = "CALL my_Vol_Quota_SUM(?,?,?,?,?,?)";

Попробуй EXEC, вместо CALL

На какой ОС крутится веб-сервер? От этого зависит, как подключаться к MSSQL


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

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 3
Пользователь №: 42518
На форуме: 9 месяцев, 25 дней
Карма:




У меня получилось вот так обратится к хранимой процедуре


$sql = "{call functionName(?)}";

$template_cls_id = '-1'; // мой параметр

$params = array(
array($template_cls_id, SQLSRV_PARAM_IN)
);


$result = sqlsrv_query($connect, $sql, $params);

if( $result === false ) {
echo "Ошибка запроса";
die( print_r( sqlsrv_errors(), true));
}

if(sqlsrv_has_rows($result)){
while($row = sqlsrv_fetch_array($result)){
return $row;
}
}

else{ echo "<br/>Не найдено результата.";}

sqlsrv_close(self::$link);
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Dimych071190  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 12
Пользователь №: 42486
На форуме: 10 месяцев, 3 дня
Карма:




А если параметр не один, как их указывать в $params? Через точку с запятой или еще как?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

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



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

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 11 дней
Карма: 170




Цитата (Dimych071190 @ 12.02.2016 - 07:31)
А если параметр не один, как их указывать в $params? Через точку с запятой или еще как?

Параметры указываются через собаку.
$query = "EXEC proc_name @param1 = 'val1',  @param2 = 'val2',   @paramn = 'valn'";

нужны плейсхолдеры, пожалуйста, ничем не отличаются от обычного подготовленного запроса.

Вызов хранимой процедуры, хоть с параметром, хоть без параметра - это ОБЫЧНЫЙ SQL ЗАПРОС

$query = "EXEC proc_name @param1 = ?,  @param2 = ?,   @paramn = ?";
$db->prepare($query);
$db->bindValue(1, 'val1');
$db->bindValue(2, 'val2');
$db->bindValue(3, 'val3');

$db->execute();


Вызов функции - тоже самое.


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

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 3
Пользователь №: 42518
На форуме: 9 месяцев, 25 дней
Карма:




Цитата (Dimych071190 @ 12.02.2016 - 07:31)
А если параметр не один, как их указывать в $params? Через точку с запятой или еще как?



$params = array(
array(имя параметра, SQLSRV_PARAM_IN),
array(имя параметра, SQLSRV_PARAM_OUT),
array(имя параметра, SQLSRV_PARAM_OUT)
);

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

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

Опции темыСтраницы: (2) 1 [2]  Ответ в темуСоздание новой темыСоздание опроса