Php 不断获取数组到字符串的转换通知,但看不出原因
我一直收到一个数组到字符串的转换通知,它似乎来自我转义(或没有转义)MySQL语句的方式。如果我不使用PHP变量并将数据作为文本输入,那么它会工作,但使用变量时会显示错误。救命!:)Php 不断获取数组到字符串的转换通知,但看不出原因,php,mysql,Php,Mysql,我一直收到一个数组到字符串的转换通知,它似乎来自我转义(或没有转义)MySQL语句的方式。如果我不使用PHP变量并将数据作为文本输入,那么它会工作,但使用变量时会显示错误。救命!:) 函数lastBackupStatus($server,$node){ $serverstatus=“”; $i=1; $result=mysql\u查询(“选择 最大值(状态为“%Failed%”时的情况,然后是计划的\u开始结束)最后一次\u失败, 上次错过的最大值(状态为“%Missed%”然后是计划的\u开始
函数lastBackupStatus($server,$node){
$serverstatus=“”;
$i=1;
$result=mysql\u查询(“选择
最大值(状态为“%Failed%”时的情况,然后是计划的\u开始结束)最后一次\u失败,
上次错过的最大值(状态为“%Missed%”然后是计划的\u开始结束时的情况),
最近一次完成的最大值(状态为“%Completed%”,然后是计划的\u start end),
节点名称,
附表(名称)
从'events.'$server'开始`
其中node_name='“$node.”
按节点名称、计划名称分组
上一次订单失败);
$count=mysql\u num\u行($result);
如果($count!==0){
而($info=mysql\u fetch\u assoc($result)){
如果($i<$count){
$serverstatus.=“”;//不执行任何操作
}否则{
如果($info['Last_Failed']>$info['Last_Completed']){
如果($info['Last_Failed']>$info['Last_Missed']){
$serverstatus.=“失败:”.$info['Last_Failed']。
$info['node\u name']。$info['schedule\u name']。“”;
}
}
如果($info['Last_Missed']>$info['Last_Completed'])){
如果($info['Last_Missed']>$info['Last_Failed'])){
$serverstatus.=“Missed:”.$info['Last_Failed']。
$info['node\u name']。$info['schedule\u name']。“”;
}
}
}
$i++;
}
}否则{
$serverstatus.=“计数为0”;
}
返回$serverstatus;
}
您忘记了将作为
关键字:
max(case when status LIKE '%Failed%' then scheduled_start end) Last_Failed,
max(case when status LIKE '%Missed%' then scheduled_start end) Last_Missed,
max(case when status LIKE '%Completed%' then scheduled_start end) Last_Completed,
应该是
max(case when status LIKE '%Failed%' then scheduled_start end) AS Last_Failed,
max(case when status LIKE '%Missed%' then scheduled_start end) AS Last_Missed,
max(case when status LIKE '%Completed%' then scheduled_start end) AS Last_Completed,
因此,$info['Last_Failed']
没有关联索引等
根据您的评论,似乎$node
毕竟是一个数组,您需要替换它:
where node_name='".$node."'
为此:
where node_name='".$node['node_name']."'
您可以指定要获取错误的行号吗?或者只需复制这一行并在代码第50行的底部输入代码:$result=mysql\u query(“选择max(状态为“%Failed%”时的情况),然后在第50行的C:\xampp\htdocs\TSM\files\Backups.php中进行数组到字符串的转换”)代码:$result=mysql\u query(“选择max(状态为“%Failed%”时的情况,然后按计划开始结束)Last_Failed,max(状态为“%Missed%”时的案例,然后是计划的_start end)Last_Missed,max(状态为“%Completed%”时的案例,然后是计划的_start end)Last_Completed,node_name,schedule_name from
events_u.“$server”。
其中node_name=”“$node.”按节点分组,按上次_name排序失败”);执行var_dump($node)
-您得到了什么?如果您在node_name=“.$node.”上出现错误,您是否尝试过var_dump$node以查看它包含的内容?很好,但出于某种奇怪的原因,没有导致错误,如果我不使用$server和$node变量并用单词替换它们,使其成为一个大字符串,工作正常?如果在函数顶部键入var\u dump($node)
,会得到什么结果?
where node_name='".$node['node_name']."'