0

配列から文字列への変換通知を受け取り続けています。これは、MySQL ステートメントをエスケープした (またはエスケープしていない) 方法によるものと思われます。PHP 変数を使用せずにデータをテキストとして入力すると機能しますが、変数を使用するとエラーが表示されます。ヘルプ!:)

function lastBackupStatus($server,$node){
  $serverstatus = "";
  $i=1;
  $result = mysql_query("select
    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,
    node_name,
    schedule_name
    from `events_".$server."`
    where node_name='".$node."'
    group by node_name, schedule_name
    ORDER BY last_failed");
  $count=mysql_num_rows($result);
  if ($count!== 0){
    while ($info = mysql_fetch_assoc( $result )){
      if($i < $count){
        $serverstatus .="";//do nothing
      }else{
        if($info['Last_Failed']  > $info['Last_Completed']){
          if($info['Last_Failed'] > $info['Last_Missed']){
            $serverstatus .="Failed:". $info['Last_Failed'].
              $info['node_name'].$info['schedule_name']."</br>";
          }
        }
        if($info['Last_Missed'] > $info['Last_Completed']){
          if ($info['Last_Missed'] > $info['Last_Failed']){
            $serverstatus .=" Missed: ". $info['Last_Failed'].
              $info['node_name'].$info['schedule_name']."</br>";
          }
        }
      }
      $i++;
    }
  } else {
    $serverstatus .= "count is 0";
  }
  return $serverstatus;
}
4

1 に答える 1

0

ASキーワードを忘れました:

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']."'
于 2013-01-30T21:58:01.973 に答える