在php变量上存储oracle行值
我在Oracle中有一个包含以下列的表:IMGPOSX、IMGPOSY和IDIMG。表的每一行都有一个不同的X Y值位置和一个ID,用于标识这些值中的哪一个对应于指定的ID 例如:在php变量上存储oracle行值,php,sql,oracle,Php,Sql,Oracle,我在Oracle中有一个包含以下列的表:IMGPOSX、IMGPOSY和IDIMG。表的每一行都有一个不同的X Y值位置和一个ID,用于标识这些值中的哪一个对应于指定的ID 例如:IDIMG=image1>IMGPOSX=20 IMGPOSY=50 使用这个值,然后我构建一个html映射图像,加载具有指定ID的图像,并将IMGPOSX和IMGPOSY的结果放在页边顶部和页边左侧css属性上 我找到了几个如何获取行的第一行的值的示例,但我不知道如何获取另一行的值(该表有12行) 在下一段代码中,我
IDIMG=image1>IMGPOSX=20 IMGPOSY=50
使用这个值,然后我构建一个html映射图像,加载具有指定ID的图像,并将IMGPOSX和IMGPOSY的结果放在页边顶部和页边左侧css属性上
我找到了几个如何获取行的第一行的值的示例,但我不知道如何获取另一行的值(该表有12行)
在下一段代码中,我得到了每列的第一行(IMGPOSX、IMGPOSY和IDIMG),但我不知道如何得到表中的其余行。如果我将行1[1]放入解析器,则会得到一个错误
<?php
$conn = oci_connect('TEST', 'TEST', 'ORCL');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conn, 'SELECT IMGPOSX, IMGPOSY, IDIMG FROM TESTTABLE ');
if(oci_execute($stid))
{
$row=oci_fetch_row($stid) ;
"<table border='2'>";
print"<tr><td><p>posx: </td><td>$row[0] </td></tr>";
print"<tr><td>posy: </td><td>$row[1] </td></tr>";
print"<tr><td>idimg: </td><td>$row[2] </td></tr>";
print"</table></br>";
}
oci_free_statement($stid);
oci_close($conn);
?>
一个粗略的例子可能是在查询中附加WHERE子句:
$id = 'image2';
$stid = oci_parse($conn, "SELECT IMGPOSX, IMGPOSY, IDIMG FROM TESTTABLE WHERE IMDIMG = $id;");
或者,对于相同的查询,您可以使用以下条件进行筛选:
if ($row[2] == $id) {
//show
}
代码前面的一句话指出,您可能需要多行,因此,如果不进行筛选,您将收到更多,要获得它们,您需要进行适当的获取。如果您当前的一个是fetch_行,则可能需要fetch_数组以接收包含所有值的数组
我建议oci\u fetch\u assoc
,这样您就可以通过他们的名字访问该列。此外,筛选将使用命名列
if ($row['IDIMG'] == $id) {
//show
}
记住功能描述中的以下句子:
此函数通常在循环中调用,直到返回FALSE
你需要一些类似的东西:
<?php
//all the code here
// ...
// ...
?>
<table border="2">
<?php while ($row = oci_fetch_assoc($stid)): ?>
<tr><td><p>posx:</p></td><td><?=$row['IMGPOSX'];?></td></tr>
<tr><td><p>posy:</p></td><td><?=$row['IMGPOSY'];?></td></tr>
<tr><td><p>idimg:</p></td><td><?=$row['IDIMG'];?></td></tr>
<?php endwhile; ?>
</table><br />
<?php
oci_free_statement($stid);
oci_close($conn);
?>
posx:
波西:
idimg: