sql server image data - 使用sq的sqlsrv_query的null值

时间:2012-08-30 20:38:44

标签: php image sql-server-2008

我获取存储在数据库中的图像数据 - 类似于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);
                }

1 个答案:

答案 0 :(得分: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'";