获取sqlsrv_query的语法错误

时间:2017-01-11 05:27:37

标签: php sql sql-server sqlsrv

我是SQL的新手。对于我的PHP应用程序,我正在使用HTML,PHP和SQL 下面的代码用于添加插入查询。

$insert_query = "INSERT INTO policy_request (user_name, user_mobile, user_email, user_car_model, user_policy_expiry_date, request_from, policy_created_on) VALUES (?,?,?,?,?,?,?)";
$params = array('".$user_name."', $user_mobile, '".$user_email."', '".$user_car_model."', '".$policy_date."', '".$request_url."', '".$created_on."');
if(!sqlsrv_query($conn,$insert_query,$params)){
    //echo "inside";exit; 
    die(print_r(sqlsrv_errors())); exit;
}else{
    echo "rows inserted";
    exit;
}

我收到这样的错误

 [0] => Array
    (
        [0] => IMSSP
        [SQLSTATE] => IMSSP
        [1] => -14
        [code] => -14
        [2] => An invalid parameter was passed to sqlsrv_query.
        [message] => An invalid parameter was passed to sqlsrv_query.
    )

我不知道我弄错了哪里。 建立了FYI数据库连接。

1 个答案:

答案 0 :(得分:0)

通过查看参数数组,您似乎试图将参数作为一个长字符串传递,其值以逗号分隔。这是不正确的。

首先,您尝试这样做是不正确的。您有一些缺失的引号 - 字符串中缺少第一个和最后一个",以及$user_mobile周围缺少引号和连接。

其次,当查询期望七个时,您只发送一个参数(字符串)。

$params应该是一个数组,其值与查询中的占位符(?)的值相同。在这种情况下,您有七个占位符,因此$params数组中应该有七个值。像这样:

$params = array($user_name, $user_mobile, $user_email, $user_car_model, $policy_date, $request_url, $created_on);