Я получаю следующую ошибку при выполнении процедуры хранилища с использованием 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 правильный синтаксис для этого... Не удалось найти пример программы даже здесь, в стеке.
Вам не хватает "@" в начале параметров хранимой процедуры. Должен быть:
$tsql_callSP = "EXEC usp_u_social_twitter @var_tweet = ?, @var_screenname = ?, @var_maxid = ?, @var_link = ?, @varid = ?";