【问题标题】:Update sql query with PHP and variables使用 PHP 和变量更新 sql 查询
【发布时间】:2015-09-17 11:47:59
【问题描述】:

当我运行这个页面时,它会显示You couldnt execute query。我认为有语法问题,但我看不到问题。

当我回显它们时,这些变量看起来很好。我将列名添加为代码注释。所有的列都是VARCHAR

我不认为这是连接问题,因为我可以从其他 php 页面执行 SELECT AND DELETE 操作。

<?php 

$id = $_POST["id"];
$name = $_POST["name"];
$surname = $_POST["surname"];
$phone = $_POST["phone"];

/* Table in the DDBB(all are VARCHAR): CUST_ID  CUST_FORENAME   CUST_PHONE  CUST_SURNAME*/

$query = "UPDATE customers SET CUST_ID='$id',$CUST_FORENAME='$name',
            CUST_PHONE='$phone', CUST_SURNAME='$surname' WHERE CUST_ID=$id";

$result = mysqli_query ($connection,$query)
    or die ("You couldn’t execute query");

echo "<br /><br />User $id has been updated.";

?>
</div>
</body>
</html>

【问题讨论】:

  • 不要在 SQL 查询中使用字符串连接。使用准备好的语句。
  • 把你的die("You couldn't...")函数改成die(mysqli_error($connection)),这样你就会看到错误描述了。
  • $id 放入报价'$id'
  • $CUST_FORENAME='$name' ?你不应该删除第一个字符吗? :),如CUST_FORENAME='$name'
  • 您是否包含了连接所在的页面

标签: php html sql sql-update


【解决方案1】:

如下更改您的查询,它将起作用

$query = "UPDATE customers SET CUST_ID='$id', CUST_FORENAME='$name',
                 CUST_PHONE='$phone', CUST_SURNAME='$surname' WHERE CUST_ID='$id'";

【讨论】:

    【解决方案2】:

    谢谢大家,这只是一个列中的 $ 符号,然后在 $id > '$id' 中再次放回引号。

    $id = $_POST["id"];
    $name = $_POST["name"];
    $surname = $_POST["surname"];
    $phone = $_POST["phone"];
    
    /*CUST_ID   CUST_FORENAME   CUST_PHONE  CUST_SURNAME*/
    
    $query = "UPDATE customers SET CUST_ID='$id',CUST_FORENAME='$name',
                CUST_PHONE='$phone', CUST_SURNAME='$surname' WHERE CUST_ID='$id'";
    
    $result = mysqli_query ($connection,$query)
        or die(mysqli_error($connection));
    
    echo "<br /><br />User $id has been updated.";
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 2023-03-21
      • 2015-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多