0

Oracle SQLクエリで使用するwindowspc名のリストを含むiniファイルを使用しようとしています。

INI で値を取得することはできますが、クエリで値を使用しようとすると、22 行目で Notice: Array to string conversion in C:\xampp\htdocs\MachineJob.php が表示されます。

while リクエストにクエリを含めると、16 行目の C:\xampp\htdocs\MachineJob.php に警告: Illegal string offset 'WINDOWS' が表示されます

警告: C:\xampp\htdocs\MachineJob.php の行 16 A に不正な文字列オフセット 'MACHINE2' があります

<?php
include 'oracon.php';

$i =1;

$win = parse_ini_file('machines.ini',true);

while($i <= 27){
echo $win['WINDOWS']['MACHINE'.$i] ;
$i++;
}

$query1 = ('select * from v$session where terminal = :win');
$result1 = oci_parse($conn, $query1);
oci_bind_by_name($result1, ':win', $win);
oci_execute($result1);

$query2 = oci_parse($conn, 'select m.machinename, j.workorderid, j.qtytoproduce, startdate, j.progressreport from job j, machine m where j.status <>600 and j.machineid = m.machineid');
oci_execute($query2);

$row1 = oci_fetch_array($result1);
echo "<table>
<tr class=\"TableHeading-CSS\">
<th class=\"TableHeading-CSS\">Machine Name</th>
<th class=\"TableHeading-CSS\">Workorder</th>
<th class=\"TableHeading-CSS\">QTY</th>
<th class=\"TableHeading-CSS\">Started</th>
<th class=\"TableHeading-CSS\">Progress</th>
<th class=\"TableHeading-CSS\">Operator</th>
</tr>";

while($row2 = oci_fetch_array($query2)){
echo "<tr class=\"Table-CSS\">";
echo "<td class=\"Table-CSS\">" . $row2['MACHINENAME'] . "</td>";
echo "<td class=\"Table-CSS\">" . $row2['WORKORDERID'] . "</td>";
echo "<td class=\"Table-CSS\">" . $row2['QTYTOPRODUCE'] . "</td>";
echo "<td class=\"Table-CSS\">" . $row2['STARTDATE'] . "</td>";
echo "<td class=\"Table-CSS\">" . $row2['PROGRESSREPORT'] . "</td>";
echo "<td class=\"Table-CSS\">" . $row1['USERNAME'] . "</td>";
echo "</tr>";}
echo "</table>";
?>

マシンの ini コンテンツ

[WINDOWS]

MACHINE1 = FHMTESTDC01-JMS 
MACHINE2 = FHMDC0002-JMS 
MACHINE3 = FHMDC0003-JMS 
MACHINE29 =FHMDC0029-JMS 

[DBNAME]

MACHINE1 = TESTDC01
MACHINE2 = DC9k02
MACHINE3 = DC9k03
etc
4

0 に答える 0