Mysql的UPDATE查询将值设置为常量总是......?

时间:2013-08-03 13:21:32

标签: php mysql

将此代码设置phno中的客户查询更新为常量2147483647  总是而不是设置为提交的值...我尝试echoeing $ phone其正确..但它在我执行查询时不起作用....

<?php
    include 'database.php' ;
    $id=$_POST["customer"];
    $name = $_POST["name"];
    $address = $_POST["address"];
    $phone = $_POST["phno"];
    $sql = "UPDATE `customer`  SET `phno`=$phone, `name`='$name',`address`='$address' WHERE actno=$id";
    if (!mysqli_query($con,$sql))
      {
      die('Error: ' . mysqli_error($con));
      }
    echo "successful";
    mysqli_close($con);
?>

2 个答案:

答案 0 :(得分:1)

您将phno设为INTEGER,不是吗? INTEGER的最大值为2,147,483,647,因此任何大于2,147,483,647的数字都超出范围,并将插入为2,147,483,647。

phno的数据类型更改为BIGINTVARCHAR

此外,您的查询容易受到SQL注入的攻击,请参阅下面的链接以获取更多详细信息。

另见:

答案 1 :(得分:0)

我认为你试图在字符串中替换$ phone, 但它不会那样工作,要么拆分字符串要么使用{}。