遇到个奇怪的问题,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']);
}
});
}
}
没什么奇怪的,你定时器没用对,自己设置好错误等级对着文档琢磨一下,定时器
好了,谢谢指点