1

我正在获取存储在数据库中的图像数据 - 类似于 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()?支持带有占位符的预处理语句。您正在连接 in $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 回答