### 前提・実現したいこと PHPでデータベース(MySQL)のusersテーブルにあるmacaddressカラムからmacアドレスを取得し そのmacアドレスに対してl2pingを一括で打つプログラムを作りたい。 この状態からどうすれば実現したいことを実現できるか知りたい。 ### 発生している問題・エラーメッセージ PHP Warning:Invalid argument supplied for foreach() in~on line 21となります。 一度他の書き方をしてエラー回避したけど結局1つしか結果が表示されなかった。
PHP
1<?php 2 //データベースに接続 3 $pdo=new PDO('mysql:dbname=xxxx;host=xxx.xxx.x.x;','xxxxx','xxxxx'); 4 //文字化け防止処理 5 $pdo->query('SET NAMES utf8;'); 6 //接続判定後に接続結果を表示 7 if(!$pdo){ 8 die('Sorry...DB not found.'); 9 }else{ 10 echo 'DBconnection is success!'; 11 } 12 $rows=""; 13 //usersテーブルのmacaddressカラムを取得 14 $sql='SELECT macaddress FROM users'; 15 //queryメソッドでmacaddressカラムを全抽出しstmtに格納 16 $stmt=$pdo->query($sql); 17 while($result=$stmt->fetch(PDO::FETCH_ASSOC)){ 18 $rows .= $result['macaddress']."<br>"; 19 } 20 echo '登録されているmacアドレスはこちらです:'.$rows; 21 foreach($rows as $row){ 22 exec("sudo l2ping -c 1".$row,$opt,$return_ver); 23 if($return_ver==0){ 24 echo '疎通成功'; 25 }else{ 26 echo '疎通失敗'; 27 } 28 } 29 //DBの接続を終了 30 unset($pdo); 31?>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。