【问题标题】:php oracle retrieve datephp oracle检索日期
【发布时间】:2012-02-10 18:31:26
【问题描述】:

我不知道我做错了什么,但下面的代码似乎对我不起作用,我只是为 $username 获取 null。数据库中肯定有值,我之前已经连接到该数据库并使用完全相同的代码对其执行查询并工作。

谁能告诉我为什么这段代码不起作用?

  $c = oci_connect('myuser','mypassword','//localhost/xe');

 $id = 1;
 $sql = "SELECT *  FROM USERS WHERE USERID= :id" ;

$stmt = oci_parse($c, $sql);
oci_bind_by_name($stmt, ":id",$id);

oci_execute($stmt);
$res =  oci_fetch_array($stmt);

$username = $res["USERNAME"];
echo $username;

【问题讨论】:

  • 代码对我来说很合适。你确定你有一个 id=1 的用户吗?
  • 我很确定您应该循环该数组或通过键值引用第一个结果...
  • 嘿,是的,我确定,我之前使用过这段代码并且工作过,我只是不知道发生了什么,我打印了 $res,它在 i 中得到了正确的结果
  • 突然开始工作并没有改变任何东西,无论如何都为帮助欢呼
  • @clonebaby59 - 多么奇怪。如果确实没有更改任何代码,您应该找出导致该问题的原因,否则在生产中可能会出现问题。

标签: php sql oracle


【解决方案1】:

您可能有一条用户名为 NULL 的记录。

尝试替换:

$res =  oci_fetch_array($stmt);
$username = $res["USERNAME"];

与:

while($res = oci_fetch_array($stmt))
{
  $username = $res["USERNAME"];
  echo $username;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    相关资源
    最近更新 更多