Необработанное исключение SoapFault: [SOAP-ENV: Server] Слишком мало аргументов для метода function (), 1 передано и ожидается ровно 2 - PullRequest
0 голосов
/ 07 ноября 2019

Я получаю эту ошибку при попытке использовать функцию на моем SOAP-сервере. Я понятия не имею, что я делаю неправильно, и я просмотрел большинство постов, касающихся этой ошибки, но безуспешно. Я чрезвычайно новичок в PHP и SOAP, поэтому извините за то, как это может выглядеть

Это моя функция PHP и настройка сервера SOAP:

function getProductsByPrice($category, $price) {

    $conn = mysqli_connect('localhost', 'root', '', 'my_guitar_shop1');

    if (!$conn) {
        die("Connection failed: " . $conn->connect_error);
    }

    $sql = "SELECT * FROM products WHERE categoryID = '$category' AND 
    listPrice < '$price'";
    $result = mysqli_query($conn, $sql);
    $rows = array();

    if (mysqli_num_rows($result) > 0) {
        while ($r = mysqli_fetch_assoc($result)) {

            array_push($rows, $r);
        }
        return json_encode($rows);
    } else {
        echo "No data";
    }
     }

       ini_set("soap.wsdl_cache_enabled", "0");
       $server = new SoapServer("http://localhost/SOAPserverTest/LOI.wsdl");
       $server->addFunction(array("getProductsByPrice", "showProductDetails", 
       "showTable"));
       $server->handle();
?>

И вот как яЯ использую метод

<?php
    $category = 3;
    $price = 400;

    $client = new SoapClient("http://localhost/SOAPserverTest/LOI.wsdl");
    $response1 = $client->getProductsByPrice($category, $price);
    $result1 = json_encode($response1, TRUE);

    print $result1;
?>

, когда я захожу на страницу клиента, я получаю эту ошибку:

Неустранимая ошибка: Uncaught Исключение SoapFault: [SOAP-ENV: Сервер] Слишком малоаргументы для функции getProductsByPrice (), 1 передано и ожидается ровно 2 в C: \ xampp \ htdocs \ finalSOAPClient \ model \ GetByPrice.php: 7 Трассировка стека: # 0 C: \ xampp \ htdocs \ finalSOAPClient \ model \ GetByPrice.php (7): SoapClient -> __ call ('getProductsByPr ...', Array) # 1 {main}, брошенный в C: \ xampp \ htdocs \ finalSOAPClient \ model \ GetByPrice.php в строке 7

...