PHP SQL语法错误添加到表1,表2值为

时间:2015-07-06 19:08:59

标签: php mysql sql syntax error-handling

我在运行这个php代码时遇到错误,该代码将根据表2的值向表1添加值,其中表3的值等于0

我的表

------------------------------
id| table 1| table 2 | table 3|
-------------------------------
01| 100    | 10     | 0      |

PHP代码

<?php
    $servername = "localhost";
    $username = "myuser";
    $password = "mypass";
    $dbname = "lol";

    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }

    $sql = "UPDATE table table1 = table1 + table2 WHERE table 3 = 0";



    if (mysqli_query($conn, $sql)) {
        echo "Record updated successfully";
    } else {
        echo "Error updating record: " . mysqli_error($conn);
    }

    mysqli_close($conn);
    ?>

它说我的sql语法错误

  

更新记录时出错:您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第1行'= table1 + table2 WHERE table3 = 0'附近使用正确的语法

如何使用正确的sql语法实现这一目标?

2 个答案:

答案 0 :(得分:1)

您忘记了SET指令,并且您的列名与查询中的列名不匹配,您必须使用后面的刻度 -

 $sql = "UPDATE `table` SET `table 1` = `table 1` + `table 2` WHERE `table 3` = 0";

您真的应该了解prepared statements

答案 1 :(得分:0)

我假设表和字段名称是别名。试试这个......

$sql = "UPDATE `table` SET `table 1` = `table 1` + `table 2` WHERE `table 3` = 0";

SET语句需要UPDATE,名称中带空格的字段或表格需要用反引号字符包围。