クライアントが特定の状態にあるかどうかを確認し、特定の値である場合は終了するように見えるこのコードを以下に記述しました。渡されるすべての変数が空でないことを確認するためにクエリと syslog をテストしましたが、exec コマンドの戻り値は 1 で、$out は空です。
exec('/usr/bin/mysql --defaults-extra-file=database-user.cnf my_db -e "SELECT client_state FROM my_table WHERE transfer_id = '.$transfer_id.' AND client_id = '.$cid.'"', $out, $ret);
if($out == 15)
{
syslog(LOG_INFO, "Transfer to client ".$client->getName()." has already been completed on this transfer")
exit(EXIT_OK);
}
出力が空であるため、if ステートメントをスキップしています。このコマンドが機能しない理由と、出力が空である理由を考えてください。