2016-12-01 10 views
-5

データがあることがわかっているときに、なぜ私のクエリがnullを返すのか不思議でした。次のようにPHP - クエリがNULLを返すのはなぜですか?

私のクエリは次のとおりです。

if (isset($_POST['noteid'])) 
    { 
     $showNoteInfo = "SELECT Note FROM Notes WHERE NoteID = 2"; 
     $showNotes = sqlsrv_query($conn, $showNoteInfo); 

     var_dump($showNotes); 
    } 

何の問題を、私は$ _POST [「NOTEID」]をテストしていない、それはIDが表示され、私は数2を持っている理論的には、このIDは置き換えられます私の質問。

私はたNoteID = 2テキストしかしディスプレイ " リソース(7)タイプの(SQL Serverのステートメント)"

をのvar_dumpこの enter image description here

ようにする必要があります注意事項表中の私のテーブルに知っているしかし

と私はまた、それを表示する別の方法を試して、それはクエリの期待リソースとして返され、NULLを与えられた、なぜこのクエリは結果を取得していないのですか?

私の接続の詳細は、ページの上部に含んでおり、このようなものです:http://pastebin.com/qz3tScdW

あなたは何かが必要な場合はお問い合わせください。

根本的な質問は、そこに私のデータがあると私のクエリがNULLを返すのはなぜですか?

+3

'成功したクエリのステートメントリソースを返しますsqlsrv_query'。それから、何かできるようになる前に、[結果を取得する](http://php.net/manual/en/function.sqlsrv-fetch.php)が必要です。 –

+0

リンク先のドキュメントの例をご覧ください。 –

+2

'リソース(7)型(SQL Server文)'!= 'NULL'です。 – Sean

答えて

4

実際にはデータを取得しようとはしません。 sqlsrv_queryはデータベースクエリを実行しますが、データは取得されません。あなたはそのためsqlsrv_fetch_array(またはsqlsrv_fetch_object)を使用する必要があります。

$stmt = sqlsrv_query($conn, $showNoteInfo); 

if (sqlsrv_has_rows($stmt)) { 
    $data = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC); 
    var_dump($data['Note']); 
} else { 
    echo "No data found"; 
} 
+0

Iは< を試みPHP (ISSET($ _ POST [ 'NOTEID'])) { 場合(空($ _ POST [ 'NOTEID'])) { $ノート= 'データなし' か?。 } else if(sqlsrv_has_rows($ showNotes)) { $ notes = sqlsrv_fetch_object($ showNotes、SQLSRV_FETCH_ASSOC); var_dump($ showNotes ['注意']); } else { echo( "No Data"); } } ?> ダンプにNULLとして返されました –

+0

@LukeLitherlandそして 'sqlsrv_fetch_array'で試しましたか? – lonesomeday

+0

まだ、 "NULL"を返しています。本当に奇妙です。 –

関連する問題