2016-11-24 7 views
0

私はあなたから助けを求めています。解決するのが難しい問題を扱っています。今配列が異なるSQLクエリフィルタタイプに対してnullを返す

id:integer, description:character varying(30) 

SQL1: select id, description from table where description = '1234'; 
SQL2: select id, description from table where description = 'record-data'; 

上記それらが実行されたときに正常に動作しているSQL文の両方、以下の表のデータ・タイプの設定があります:

私はSQLのこれらの2つのタイプがあります、私はテーブルに格納されているレコードを持っているdescriptionフィールドは、整数と文字列の値が含まれています。

はここで問題だ各SQLにますprint_rを発行する際に、SQL1は空白になってSQL2は配列要素データ/結果

SQL1: Array() 
SQL2: Array([0] => Array 
(
     [id] => 9 
     [0] => 9 
     [description] => record-data 
     [1] => record-data 
) 

を返しながら、これらのデータ(複数可)の両方がテーブル内に存在している - 私ができます」私は遭遇した問題を理解しているようです。このシナリオであなたの考えと助けが必要です。

私は自分のデータベースとしてPostgreSQLを使用しています。

ありがとうございます!

private function getPrimIds($val){ 

$dbh = new PDO("pgsql:dbname=xxxx;host=x.x.x.x", xxx,xxx); 

$sql = "select id, description from table where description = '$val'"; 
$exec = $dbh->prepare($sql); 
$exec->execute(); 
$result = $exec->fetchAll(); 

print "<br>"; 
print_r($result); 
die(); 

if(count($result) > 0){ 
    $pr_id = $result[0]["id"]; 
    } 

    return $pr_id; 
} 
+1

あなたのPHPコードを共有することはできますか? – malutki5200

+0

@ malutki5200上記を参照してください、ive質問を更新しました。ありがとう! – danteboi

+0

これは、あなたが '' 1234 ''という記述を持っていないことを意味します。 '' 1234 ''や' '1234''などであってもかまいません。だからあなたのテーブルのデータをもう一度チェックしてください –

答えて

0

あなたの関数はOKのようです:

は、ここに私のPHPコード/機能です。あなたが探している価値に問題がなければなりません。
変更してみてください:

"select id、description from 'description =' $ val '";


へ:

"select id, description from table where description like '%$val%'"; 
+0

私はそれを試しましたが、それでも動作しません。 – danteboi

関連する問題