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