星号AGI和Mysql字符串变量

星号AGI和Mysql字符串变量,mysql,asterisk,agi,Mysql,Asterisk,Agi,我解决不了一个问题,脚本的目的是识别上下文编号 下面是星号拨号计划扩展名.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

我解决不了一个问题,脚本的目的是识别上下文编号

下面是星号拨号计划扩展名.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;
    }
}


?>
#/usr/bin/php-q

你在开玩笑吗?为什么不直接问db一句

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

此任务的最佳选择是只使用func_odbc,不需要任何php或agi。

agi Tx>>510无效或未知的命令[Oct 31 11:35:49]错误[20679]:utils.c:1164 ast_carefulwrite:write()返回错误:断开的管道--agi Script test.php已完成,返回0此操作不需要agi类。删除它们并尝试在控制台上调试,如“phpmyfile.php”,它给出了一些解决问题的提示。