将变量插入sql字符串变量

时间:2015-08-07 09:01:44

标签: php sql-server

$sql = "insert into dbo.".$st_tab." (bike_id,st_id";
        if($st_tab === "st1_rec_id"||$st_tab === "st2_rec_id"||$st_tab ==="st3_rec_id")
        {
            $sql .= ",ln_id";
        }
        $sql .= ",times,date) values (?,?";
        if($st_tab === "st1_rec_id"||$st_tab === "st2_rec_id"||$st_tab ==="st3_rec_id")
        {
            $sql .= ",?";
        }
        $sql .= ",?,?)";
        echo $sql;
        if($st_tab === "st1_rec_id"||$st_tab === "st2_rec_id"||$st_tab ==="st3_rec_id")
        {
            $var = array($bike_id,$station,$line,$time,$date);
        }
        else
        {
            $var = array($bike_id,$station,$station,$time,$date);
        }
        $insert = sqlsrv_query($conn,$sql,$var);
        if($insert === false)
        {
            die(print_r(sqlsrv_errors(),true));
        }
        else
        {
            foreach($var as $x => $a)
            {
                echo $x." : ".$a." ";
            }
            echo "<br> 1 Record Added";
        }

由于该代码我收到了查询错误

  

数组([0] =&gt;数组([0] =&gt; 42000 [SQLSTATE] =&gt; 42000 [1] =&gt; 102   [code] =&gt; 102 [2] =&gt; [Microsoft] [SQL Server的ODBC驱动程序11] [SQL   服务器]'chs_st2_rec'附近的语法不正确。 [message] =&gt;   [Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]语法不正确   靠近'chs_st2_rec'。 ))

我无法确定错误是什么以及它在哪里。

1 个答案:

答案 0 :(得分:1)

想通了

所有这些行之前的代码错误

原因是我使用带引号的单引号

$sql = "select '$st_char'
            from '$st_tab'
            where bike_id like '$bike_id'";

所以我删除单引号并且它的工作

谢谢大家:)

相关问题