onWorkerStart中获取数据库数据问题

yanhui

遇到个奇怪的问题,onworkerstart中无法用fetch()获取sql返回的数据,试了n种方法,最后没辙了把读取数据的代码复制出来,网页打开正常……
检查了扩展,cli下的pdo_dblib正常,查了数据库,查询和insert into都有执行。
下面第一段运行正常,第二段while循环没执行

<?php
//phpinfo();
$db = new PDO("dblib:host=192.168.17.5;dbname=test","test","usertest");
$sql = "select * from t_unit where unit_id=10";
$rs = $db->query($sql);
while($row =$rs->fetch())
{
print($row['1']."<br>");
}

?>

public static function onWorkerStart($worker)
{
global $db;
$db = new PDO("dblib:host=192.168.17.5;dbname=test","test","usertest");
if ($worker->id === 0)
{
Timer::add('10',function()
{
$sql = "select * from t_unit where unit_id=10";
$rs = $db->query($sql);
while($row = $rs->fetch())
{
Gateway::sendToGroup("monitor",$row['1']);
}
});
}
}

1921 1 0
1个回答

JustForFun

没什么奇怪的,你定时器没用对,自己设置好错误等级对着文档琢磨一下,定时器

年代过于久远,无法发表回答
🔝