Как проверить, если значение уже существует. PHP - PullRequest
0 голосов
/ 13 ноября 2018

У меня проблемы с хранимой процедурой в MSSQLServer. Это правильный синтаксис для проверки уже существующего значения?

ALTER PROCEDURE [dbo].[sp_SRP_DuplicateData]
-- Add the parameters for the stored procedure here
@BankName nvarchar(50),
@BankCode nvarchar(5)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
SELECT BankName, BankCode FROM ZREF_ROUT_INCO_DOC where BankName=@BankName 
and BankCode=@BankCode

END

Это мой php код

<?php
    if(isset($_POST['SUBMIT']))
    {
       $query = sqlsrv_query($conn, "EXEC sp_SRP_DuplicateData(?,?)");

    if(sqlsrv_num_rows($query)>0)
    {
      echo "Bank Name or Bank Code already exist";
    }

  }

  ?>

Это форма

    <label class="form-top">Add Bank</label>
    <div class="form-group">
    <form action="test.php" method="POST">
    <div class="modal-body" style="text-align: left;">  

            <b>Bank Name:</b><input type="text" name="BankName" value="" 
id="" class="" /><br>
            <b>Bank Abbreviation: </b><input type="text" name="BankCode" 
value="" id="" class="" /> <br>
            <input type="SUBMIT" name="SUBMIT" value="Proceed" id="Bank" 
class="btn btn-lg btn-default" />

1 Ответ

0 голосов
/ 13 ноября 2018

Чтобы передать значения в хранимую процедуру, вам нужно предоставить массив значений в функцию sqlsrv_query ...

$query = sqlsrv_query($conn, "EXEC sp_SRP_DuplicateData(?,?)", array( $_POST['BankName'], $_POST['BankCode'] ));

Хранимая процедура, которую вы опубликовали, выглядит нормально для меня, однако у вас установлено значение SET NOCOUNT ON, которое, я считаю, не будет возвращать количество строк, требуемое функцией sqlsrv_num_rows. Вы должны использовать функцию sqlsrv_has_rows для проверки строк ...

if(sqlsrv_has_rows($query))
{
  echo "Bank Name or Bank Code already exist";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...