php:使用PDO OCI执行查询

I'm trying execute simple script, but can't get result.

$id = $_GET['contract'];
$dsn = 'oci:dbname=xxx.xxx.xx';
$user = 'xxxx';
$pass = 'xxxx';

try{
    $conn = new PDO($dsn, $user, $pass);

    $stmt = $conn->prepare('SELECT * FROM DOGOVOR.CONTRACT CTR WHERE CTR.CONTRACTORNUMDOC = ?');
    $stmt->execute(array($id));
    $row = $stmt->fetch(PDO::FETCH_ASSOC);
}
catch (PDOException $e){
    echo $e->getMessage();
}

var_dump($row);

result - bool(false). None errors. If i try query only "SELECT * FROM DOGOVOR.CONTRACT", then all ok. Need to say that $id take cyrilic value. May it be problem with charset or something else? Oracle 9i. PHP 5.2.

1个回答



尝试此查询:</ p>

  SELECT CTR。* FROM DOGOVOR.CONTRACT CTR WHERE  CTR.CONTRACTORNUMDOC =?
</ code> </ pre>

您错过了 CTR。* </ code> </ p>

或更简单:< / p>

  SELECT * FROM DOGOVOR.CONTRACT WHERE CONTRACTORNUMDOC =?
</ code> </ pre>
</ div>

展开原文

原文

Try this query:

SELECT CTR.* FROM DOGOVOR.CONTRACT CTR WHERE CTR.CONTRACTORNUMDOC = ?

Here you missed CTR.*

or simpler:

SELECT * FROM DOGOVOR.CONTRACT WHERE CONTRACTORNUMDOC = ?

douyue1926
douyue1926 charset的问题。 iconv帮助了我。
大约 7 年之前 回复
duanbiaojin8860
duanbiaojin8860 charset 100%的问题,因为如果我回显2值:来自$ _GET和内部$ id我在不同的字符集中获得差异值
大约 7 年之前 回复
dpo60833
dpo60833 too long
大约 7 年之前 回复
dongxuanchao1425
dongxuanchao1425 为我做出奇怪的举动。 如果我得到/index.php?contract=Ð~Ð"-2007-ФКÑ0-218那么我得到bool(假)结果。 如果我在代码中写$ id ='Ð〜Г-2007-ФКÑ0-218',那么我从base获得结果。
大约 7 年之前 回复
dongyata3336
dongyata3336 你确定CONTRACTORNUMDOC = $ id的记录存在吗?
大约 7 年之前 回复
dsiv4041
dsiv4041 谢谢,但没有工作 - 同样的结果。
大约 7 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐