使用php的sqlsrvquery-sqlserver镜像数据-空值


sql server image data - null value using sqlsrv_query of php

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

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'";