您好我正在运行一个简单的SQL语句来提取数据并使用OCI_FETCH_ARRAY()显示而没有运气。 PHP不会在error_log中记录任何错误,或者不显示错误消息,但只显示空白页。
表定义如下:
下面是SQL,我可以在SQL开发人员上运行以获取相关数据:
$sql="SQL Here";
在下面运行OCI_PARSE和OCI_EXECUTE函数时处理错误:
$stid = oci_parse($conn,$sql);
$error_msg_conn= oci_parse($conn,$sql);
if (!$error_msg_conn) {
$e = oci_error($conn);
echo htmlentities($e['message']);
}
$error_msg_stmt = oci_execute($stid);
if (!$error_msg_stmt) {
$e = oci_error($stid);
echo htmlentities($e['message']);
}
显示以下结果集中记录的代码:
while (($row = oci_fetch_array($stid,OCI_RETURN_NULLS+OCI_BOTH))==TRUE) {
echo "<td>".$row[0]."</td>";
echo "<td>".$row[1]."</td>";
echo "<td>".$row[2]."</td>";
echo "<td>".$row[3]."</td>";
echo "<td>".$row[4]."</td>";
echo "<td>".$row[5]."</td>";
echo "<td>".$row[6]."</td>";
echo "<td>".$row[7]."</td>";
echo "<td>".$row[8]."</td>";
echo "<td>".$row[9]."</td>";
echo "<td>".$row[10]."</td>";
echo "<td>".$row[11]."</td>";
echo "<td>".$row[12]."</td>\n";
echo "</tr>\n";
}
echo "</table>\n";
oci_free_statement($stid);
oci_close($conn);
?>
知道为什么我在PHP输出上看不到任何内容?甚至在error_log中没有错误?
谢谢。
答案 0 :(得分:1)
在您上面的评论中说
它不喜欢where子句。 PHP在没有where子句的情况下提取数据。任何想法为什么OCI8会导致&#34;在哪里TRADE_DATE = TO_CHAR(SYSDATE,&#39; DD-MON-YY&#39;)&#34;?
这就是因为您的TRADE_DATE列是DATE而不是VARCHAR
class MyWidget : public QWidget {
QLabel m_label;
...
Q_SIGNAL void setImage(const QImage &);
public:
MyWidget() {
...
connect(MyWidget, &MyWidget::setImage, this, [this](const QImage & image){
m_label.setPixmap(QPixmap::fromImage(image));
});
QtConcurrent::run(ioPool(), [this]{ setImage({"/path/to/image.png"}); });
}
};
这样做desc IRINS_COMPOSITE_INSTRUMENTS
Name Null Type
------------------- -------- -------------
...
TRADE_DATE DATE
会创建一个STRING,然后使用您当前的NLS_DATE_FORMAT设置将其转换回DATE
假设您只是试图忽略TO_CHAR(SYSDATE, 'DD-MON-YY')
的时间组件,只需将其更改为
SYSDATE
假设修复它,它与OCI或OCI_FETCH_ARRAY()
无关