Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不断获取数组到字符串的转换通知,但看不出原因_Php_Mysql - Fatal编程技术网

Php 不断获取数组到字符串的转换通知,但看不出原因

Php 不断获取数组到字符串的转换通知,但看不出原因,php,mysql,Php,Mysql,我一直收到一个数组到字符串的转换通知,它似乎来自我转义(或没有转义)MySQL语句的方式。如果我不使用PHP变量并将数据作为文本输入,那么它会工作,但使用变量时会显示错误。救命!:) 函数lastBackupStatus($server,$node){ $serverstatus=“”; $i=1; $result=mysql\u查询(“选择 最大值(状态为“%Failed%”时的情况,然后是计划的\u开始结束)最后一次\u失败, 上次错过的最大值(状态为“%Missed%”然后是计划的\u开始

我一直收到一个数组到字符串的转换通知,它似乎来自我转义(或没有转义)MySQL语句的方式。如果我不使用PHP变量并将数据作为文本输入,那么它会工作,但使用变量时会显示错误。救命!:)

函数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']."'