无法更新MySQL表

时间:2011-12-21 22:56:35

标签: php mysql

我不知道我做错了什么,但我的小更新代码给了我一条错误消息,我无法解决如何解决它。

这是我的代码:

<?php

     include('dbconfig.php');
     $con = mysql_connect($host, $username, $password) or die(mysql_error()) ; 

     if (!$con){
         die('Could not connect: ' . mysql_error());
      }
        mysql_select_db($db, $con);

       function sqlEscape($string){     
          return "'".mysql_real_escape_string($string)."'";
       }

        if(isset($_POST['submit'])){


    $q  =  "UPDATE records SET `name` = " + sqlEscape($_POST['name']) + ", 
    `age` = " + sqlEscape($_POST['age']) + ", 
    `location` = " + sqlEscape($_POST['location']) + ", 
    `telephone` = " + sqlEscape($_POST['telephone']) + "

     WHERE id = $_POST[id]";                

     mysql_query($q) or die(mysql_error());

     }                  
  ?>

以下是打印出来的错误消息:

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 '0' at line 1

有人可以看到我出错的地方吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

您正在使用+运算符添加字符串,用于添加数字。在PHP中,字符串与.(句点)运算符连接。

$q = "UPDATE records SET `name` = " . sqlEscape(...) . ",

答案 1 :(得分:3)

$q  =  "UPDATE records SET `name` = " . sqlEscape($_POST['name']) . ", 
    `age` = " . sqlEscape($_POST['age']) . ", 
    `location` = " . sqlEscape($_POST['location']) . ", 
    `telephone` = " . sqlEscape($_POST['telephone']) . "

     WHERE id = $_POST[id]";

使用“。”而不是“+”来连接PHP中的字符串。