синтаксис хранимой процедуры EXEC для запроса на обновление

1

Я получаю следующую ошибку при выполнении процедуры хранилища с использованием SQLSRV.

Array ( 
  [0] => Array ( 
          [0] => 42000 
          [SQLSTATE] => 42000 
          [1] => 102 
          [code] => 102 
          [2] => [Microsoft]
          [ODBC Driver 11 for SQL Server] 
          [SQL Server] Incorrect syntax near '='. 
          [message] => 
               [Microsoft]
                   [ODBC Driver 11 for SQL Server]
                      [SQL Server]Incorrect syntax near 'r'. ) 
                           [1] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 8180 [code] => 8180 [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Statement(s) could not be prepared. [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Statement(s) could not be prepared. ) )

$tsql_callSP = "EXEC usp_u_social_twitter var_tweet = ?, var_screenname = ?, var_maxid = ?, var_link = ?, varid = ?";  

Код, который я использую, приведен ниже.

$tsql_callSP = "EXEC usp_u_social_twitter var_tweet = ?, var_screenname = ?, var_maxid = ?, var_link = ?, varid = ?";

$stmt3 = sqlsrv_prepare( $conn, $tsql_callSP, array(&$tweet, &$screenname, &$maxid, &$link, &$id));

Что мне здесь не хватает для синтаксиса. Эти имена переменных, перечисленные здесь, не являются настоящими. Но я не вижу здесь синтаксиса...

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

Пожалуйста, помогите мне... Спасибо заранее... Whatz правильный синтаксис для этого... Не удалось найти пример программы даже здесь, в стеке.

Теги:
stored-procedures
sql-server-2008

1 ответ

0

Вам не хватает "@" в начале параметров хранимой процедуры. Должен быть:

$tsql_callSP = "EXEC usp_u_social_twitter @var_tweet = ?, @var_screenname = ?, @var_maxid = ?, @var_link = ?, @varid = ?";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню