Звездочка AGI и Mysql строковая переменная - PullRequest
0 голосов
/ 31 октября 2018

Не могу решить проблему, цель скрипта - определить номер контекста.

Ниже приведен номер расширения абонентской группы .conf

exten => 1234,1,Answer()
same => n,Set(NUM2CALL=Hello, your number is eight)
same => n,NOOP(${NUM2CALL})
same => n,AGI(test.php,${NUM2CALL})

Файл, на котором выполняется test.php

#!/usr/bin/php -q
<?php
require '/var/lib/asterisk/agi-bin/phpagi/phpagi.php';
$agi = new AGI();

//DB connect
$mysqli = new mysqli('127.0.0.1', 'root', 'testdatabase', 'asterisk');

if (mysqli_connect_errno())
{
    printf("Connect failed: %s\n", mysqli_connect_error());

    exit();
}
//End

$query  = "SELECT text, number FROM recognation_2";
$result = $mysqli->query($query);

while ($row = $result->fetch_object())
{
    if(strpos($argv[1], $row->text) !== FALSE)
    {
        echo $row->number;
    }
}


?>

1 Ответ

0 голосов
/ 31 октября 2018

Ты что, шутишь? Почему бы просто не спросить одну строку в БД?

$query  = "SELECT text, number FROM recognation_2 where text = "+mysqli_real_escape_string($mysqli,$argv[1]);

Лучший вариант для этой задачи - просто использовать func_odbc, нет необходимости в php или agi.

...