准备好的语句出现语法错误


Syntax error on prepared statement

我有这个查询

$q1 = "UPDATE klanten SET (
       kla_tel2,
       kla_mobiel,
       kla_fax,
       kla_btw_nummer,
       kla_bankrekening,
       kla_ww,
       kla_bez_straat,
       kla_bez_nummer,
       kla_bez_toev,
       kla_bez_pc,
       kla_bez_plaats,
       kla_bez_land_id,
       kla_post_straat,
       kla_post_nummer,
       kla_post_toev,
       kla_post_postbus,
       kla_post_pc,
       kla_post_plaats,
       kla_post_land_id,
       kla_fac_straat,
       kla_fac_nummer,
       kla_fac_toev,
       kla_fac_postbus
       kla_fac_pc,
       kla_fac_plaats,
       kla_fac_land_id,
       kla_sidn_owner,
       kla_reg_status,
       kla_rechtspersoon
       )
       VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
       WHERE kla_id=" . $kla_id;

但当执行时,它会给我一个语法错误You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( kla_tel2, kla_mobiel, kla_fax, kla_btw_num' at line 1: SQL: UPDATE klanten SET ...

我所知道的是,所有值都已填充,$kla_id也已填充,但由于这是一个SQL语法错误,应该不会有问题。

编辑

MySql客户端版本为5.0.51a服务器版本为5.0.51a-24+lenny4协议版本为10

您使用了错误的UPDATE语法。有关详细信息,请参阅文档。

正确的语法如下:

UPDATE klanten SET kla_tel2 = <some_value>, kla_mobiel = <some_other_value> WHERE kla_id = <some_third_value>

您也可以将其用于准备好的SQL语句,如上面的示例,使用问号。