2017-06-08 18 views
0

からフィールドを受け取ることができません:このコードは何も印刷されませんは、私は次のコードを持っているPHPのクエリ

<?php 
//$adress = $_POST['forgotpass']; 
$adress = '[email protected]'; 
$test = 'test'; 
$conn = oci_connect('con', 'con', "localhost/xe"); 
$array = oci_parse($conn, "select password from t1 , t2 where id = user_id and email = :adress"); 
oci_bind_by_name($array, ':adress', $adress); 
oci_execute($array); 

while($row=oci_fetch_array($array)) 

{ 

echo $row[0]; 

} 

を、私はそれがために、シンボルのこのようなものですと仮定します。または私のメールアドレスからの@。

実際、変数を使用すると、その変数が機能します。

<?php 
//$adress = $_POST['forgotpass']; 
$adress = '[email protected]'; 
$test = 'test'; 
$conn = oci_connect('con', 'con', "localhost/xe"); 
$array = oci_parse($conn, "select password from t1 , t2 where id = user_id and name = :test"); 
oci_bind_by_name($array, ':test', $test); 
oci_execute($array); 

while($row=oci_fetch_array($array)) 

{ 

echo $row[0]; 

} 

そして、このように、それは私が見たいと思って何をすべきか、画面上で私を示し

。私はまったく同じことをしているので、電子メールアドレスの問題は表示されません。しかし、私が言ったように、私はそれがそれらの記号のためだと思う。

答えて

1

あなたは:一重引用符を試したことがありますか?

何かのように:

$array = oci_parse($conn, "select password from t1 , t2 where id = user_id and email = ':adress'"); 
はい、私が試した、と多くの人がより多くの、まだ、問題はその点からある、とにかく、私はカンマでドットを交換し、その後に余分なクエリを作るために管理
+0

どのようにしたいのですか?電子メールを選択してください:D – lexraid

+1

回避策@lexraidが見つかりましたが、フロントエンドでSQLをハードコードしないことをお勧めします。私はあなたのクエリを実装するストアドプロシージャを作成し、パラメータとしてフィルタ文字列を受け取り、DBMSのネイティブ解析機能を使用して作業するように、結果とオープンカーソルを返しますフレームワーク統合のもの –

+0

あなたはそうです、ありがとう、私はあなたの助言を思い出すでしょう。 – lexraid

関連する問題