更新查询中的sql语法错误

时间:2012-12-12 09:34:17

标签: php mysql

我有这个查询,我用它来更新表,问题是我这个错误:

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 'emri='Albana', klienti='Distribrands', telefoni='0662080090', montim='Kompjut' at line 1

我在这里找不到错误..这很奇怪...... 请帮我解决一下这个。 这是一个更新查询! 查询:

$sqlStart="UPDATE forma SET ";
$sql="";
if ($postDyqani_pergjegjes!= 'undefined') $sql .= " dyqani_pergjegjes='$postDyqani_pergjegjes',";
if ($postEmri!= 'undefined') $sql .= "  emri='$postEmri',";
if ($postKlienti!= 'undefined') $sql .= "  klienti='$postKlienti',";
if ($postTelefoni!= 'undefined') $sql .= "  telefoni='$postTelefoni',";
if ($postMontim!= 'undefined') $sql .= "  montim='$postMontim',";
if ($postAdresa!= 'undefined') $sql .= "  adresa='$postAdresa',";
if ($postData_e_shitjes!= 'undefined') $sql .= "  data_e_shitjes='$postData_e_shitjes',";
if ($postDifekti!= 'undefined') $sql .= "  difekti='$postDifekti',";
if ($postTekniku_emer!= 'undefined') $sql .= "  tekniku_emer='$postTekniku_emer',";
if ($postTekniku_mesazh!= 'undefined') $sql .= "  tekniku_mesazh='$postTekniku_mesazh',";
if ($postData_fillim!= 'undefined') $sql .= "  data_fillim='$postData_fillim',";
if ($postData_mbarim!= 'undefined') $sql .= "  data_mbarim='$postData_mbarim',";
if ($postData!= 'undefined') $sql .= "  data='$postData',";
if ($postStatus!= 'undefined') $sql .= "  status='$postStatus',";
// replace the last `,` for `;`
if ($sql != "") {
    // replace the last `,` for `;`
    $sql = substr($sql, 0, -1) . ";";
    // run sql command
    $sqlCommand = $sqlStart.$sql;
    $result=mysql_query($sql) or die(mysql_error()) ;

} else {
    // no fields to update
}

由于

2 个答案:

答案 0 :(得分:3)

您的问题是您正在执行$sql,这只是查询的一半。完整查询位于$sqlCommand中,因此请执行:

 $result=mysql_query($sqlCommand) or die(mysql_error()) ;

附注:您应确保为单引号转义变量(请参阅mysql_real_escape_string())。不推荐使用mysql_*库,因此建议迁移到PDO或MySQLi。

答案 1 :(得分:0)

请写$ sqlCommand代替$ sql,因为最终查询在此变量中。