1

私はdbに保存されている画像データを取得しています-0X92384902340923904823のようなもの..... sqlsrv_queryを使用してphpから呼び出します。

これらの画像のデータベースにはデータがありますが、常に null が返されます。

$sql = "SELECT ProdImage FROM Product WHERE ProdId=".addslashes($prod_id)
                $params = array();
                $options =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
                $result = sqlsrv_query( $conn, $sql , $params, $options );

                if($result != NULL && sqlsrv_num_rows($result) > 0)
                {
                    $obj = sqlsrv_fetch_object($result);
                    return ($obj->ProdImage);
                }
4

1 に答える 1

0

sqlsrv_query()?プレースホルダー付きの準備済みステートメントをサポートします。で連結し$prod_idていますが、単一引用符で文字列として適切に引用していません。これは SQL の構文エラーです。代わりに、プレースホルダーを使用して?ください。

 $sql = "SELECT ProdImage FROM Product WHERE ProdId = ?";
 // pass $prod_id as a parameter.
 $params = array($prod_id);
 $options =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
 $result = sqlsrv_query( $conn, $sql , $params, $options );

推奨されない単純なクエリ メソッドを使用する場合は、一重引用符で囲む必要があり$prod_idます。$prod_id何らかの種類のユーザー入力から来る場合は、これを行わないでください。

 $sql = "SELECT ProdImage FROM Product WHERE ProdId = '$prod_id'";
于 2012-08-30T20:52:05.583 に答える