С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/35: Рейтинг темы: голосов - 35, средняя оценка - 4.66
0 / 0 / 1
Регистрация: 15.11.2012
Сообщений: 27

MSSQL + PHP + хранимая процедура

20.12.2012, 14:47. Показов 7005. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый всем вечер.
Проблема в том, что никак не могу запустить хранимую процедуру на MSSQL. В самой БД все работает отлично.
К базе коннектиться нормально(mssql_query работает нормально). Проблема возникает именно при вызове процедуры.
Итак, сама процедура:
T-SQL
1
2
3
CREATE PROCEDURE [dbo].proc_search_nomer @data date, @days int, @type varchar(10)
AS
--Тут какие-то действия с БД
Пример кода вызова процедуры:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$stmt = mssql_init('proc_search_nomer',$link);
 
// Bind the field names
mssql_bind($stmt, '@days',  $srok,  SQLINT4,  false,  false);
mssql_bind($stmt, '@days',  $srok,  SQLINT1,  false,  false);
mssql_bind($stmt, '@type',  $type,  SQLVARCHAR,  false,  false,  10);
 
// Execute
mssql_execute($stmt);
 
// Free statement
mssql_free_statement($stmt);
Ошибка:
Bash
1
Warning: mssql_execute() [function.mssql-execute]: stored procedure execution failed in T:\home\localhost\www\search.php on line 35
Кстати, какой нужно использовать атрибут в функции mssql_bind, чтобы процедура получила переменную типа Date?
Т.е вот:
mssql_bind($stmt, '@days', $srok, SQLINT4, false, false);
Что вместо выделенного жирным нужно использовать, чтобы процедура получила переменную типа Date?

Добавлено через 18 часов 27 минут
Ребят, помогите, пожалуйста. Один не справлюсь
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.12.2012, 14:47
Ответы с готовыми решениями:

процедура на MSSQL (создание INSERT и возвращение @@Identity)
Всех приветствую, проблема вот небольшая. Весь инет перерыл, но все равно не понимаю в чем прикол Вроде бы и видел, что именно так и...

php и mssql
Подскажите пожалуйста. У меня есть программа, писал ее на C#, в программе реализованно подключение к mssql серверу, все уже давно написано...

MSSQL и PHP
Никак не могу их подружить. В php.ini добавил "extension=php_sqlsrv_53_ts.dll" В папку "C:\webserver\php\ext" положил библиотеку...

2
 Аватар для Totoro
47 / 23 / 3
Регистрация: 28.05.2012
Сообщений: 150
Записей в блоге: 1
21.12.2012, 07:29
Как я понял вы пытаетесь выполнить prepared statements средствами библиотеки mysql если не прав то поправьте, из этого хотел бы дать пару советов:

1. Перестать использовать библиотеку mysql это конечно хорошая библиотека и довольно таки быстрая но в PHP с версии 5.5 уже начнётся работа по обновлению документации и добавлению E_DEPRECATED ошибок к функциям mysql.

2. Поэтому советую посмотреть в сторону PDO или MySQLi(имеет также процедурный подход) обе они имеют ООП подход и реализация prepared statements там не в пример проще. По данной теме можно почитать сначала тут:

http://habrahabr.ru/post/137664/

Потом посмотрите тут(может сэкономить часов 5 головной боли):
Не выполняется INSERT средствами PDO prepared statement

Теперь по теме попробуй запустить
скрипт с ERR_ALL и E_STRICT
0
0 / 0 / 1
Регистрация: 15.11.2012
Сообщений: 27
21.12.2012, 23:29  [ТС]
Как оказалось вызов в php вообще не видит мою процедуру.
Итак упрощу пример:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$server = 'HOME';
// Connect to MSSQL
$link = mssql_connect($server, 'sa', '1234567');
$innp = intval($_GET['innp']);
mssql_select_db('Hotel',$link);
$stmt = mssql_init("[dbo].test",$link);
 
// Bind values
mssql_bind($stmt, '@nomer',    $innp,  SQLINT1);
 
// Execute the statement
mssql_execute($stmt);
 
?>

Сама процедура:
T-SQL
1
2
3
4
5
6
7
8
USE Hotel
GO
 
CREATE PROCEDURE [dbo].test @nomer int
AS
begin
 select 99
end
Ошибка та же:
Bash
1
Warning: mssql_execute() [function.mssql-execute]: stored procedure execution failed in T:\home\localhost\www\l.php on line 11
Ребят, помогите разобраться =( уже 3ий день бьюсь.
P.S К базе коннектиться нормально, т.е select и т.п подобные работают через mssql_query

Добавлено через 17 минут



Сделал еще одну серию тестов:
Процедура.
T-SQL
1
2
3
4
5
6
7
8
9
10
11
USE Hotel
GO
 
drop PROCEDURE [dbo].test
go
 
CREATE PROCEDURE [dbo].test
AS
begin
 select 99
end
PHP.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$server = 'HOME';
// Connect to MSSQL
$link = mssql_connect($server, 'sa', '1234567');
$innp = intval($_GET['innp']);
$sel = mssql_select_db('Hotel',$link);
if (!$sel) {
    die('Could not select_db: ' . mysql_error());
}
 
$stmt = mssql_init("[dbo].test",$link);
if (!$stmt) {
    die('Could not init: ' . mysql_error());
}
echo 1111;
$result = mssql_execute($stmt);
if (!$result) {
    die('Could not execute: ' . mysql_error());
}
echo 22222;
 
?>
Лог:
1111
Warning: mssql_execute() [function.mssql-execute]: stored procedure execution failed in T:\home\localhost\www\l.php on line 16
Could not execute:
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.12.2012, 23:29
Помогаю со студенческими работами здесь

Image MSSQL PHP
Столкнулся с такой проблемой. В базе данных MSSQL находится столбец с типом image. Там хранятся картинки. Мне нужно вывести их на странице....

PHP + MSSQL + AJAX
Всем доброго дня! Итак ситуация в следующем, есть БД MSSQL, есть форма на php, в ней 5 полей: &quot;user_login&quot; |...

Php 5.3 + mssql 2000
Тема может не нова, но вот беда. Шарахнулся в инет - вроде как 5.3 не идет со стандартными драйверами для мсскл. Пытаюсь с денвера...

Нет коннекта PHP и MSSQL
Всем привет! Возникла одна проблема. Есть личный кабинет для игры RF ONLINE и есть базы MSSQL. Личный кабинет стоит на хостинге timeweb,...

PHP и MSSQL, теряется связь
Добрый день. У меня возникает проблема: периодически PHP (5.2.17) сообщает о невозможности соединения с сервером (“Warning:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru