此代码设置中的更新客户查询phno为常量2147483647
总是设置为提交的值而不是。。。我试着回应$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);
?>

最佳答案

你把phno设为INTEGER,不是吗?INTEGER的最大值为2147483647,所以大于2147483647的任何数超出范围,将插入为2147483647。
phno的数据类型更改为BIGINTVARCHAR
此外,您的查询易受SQL注入攻击,有关详细信息,请参阅下面的链接。
另见:
Integer Types in MySQL
What's the best method for sanitizing user input with PHP?

07-26 05:34