Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MySQL更新语句_Php_Mysql - Fatal编程技术网

PHP MySQL更新语句

PHP MySQL更新语句,php,mysql,Php,Mysql,我正在制作一个网站,在您登录并在数据库中添加所有联系人后,您也可以编辑它们。要做的就是使用MYSQL更新语句。我已经写了代码,但Sosmeting似乎不起作用,已经折磨了我几个小时。这是密码 <?php session_start(); $del_id = $_GET["id"]; $_SESSION["id"] = $del_id; $del_name = $_GET["name"]; $del_phone = $_GET["phone"]; $d

我正在制作一个网站,在您登录并在数据库中添加所有联系人后,您也可以编辑它们。要做的就是使用MYSQL更新语句。我已经写了代码,但Sosmeting似乎不起作用,已经折磨了我几个小时。这是密码

<?php
session_start();
    $del_id = $_GET["id"];
    $_SESSION["id"] = $del_id;
    $del_name = $_GET["name"];
    $del_phone = $_GET["phone"];
    $del_address = $_GET["address"];
    $del_email = $_GET["email"];
    $name2 = $_POST["name"];
    $address2 = $_POST["address"];
    $number2 = $_POST["number"];
    $email2 = $_POST["email"];
    $query = "UPDATE `contacts` SET email = '$email2' AND phone = '$number2' AND address = '$address2' AND name = '$name2' WHERE id = '$del_id'";
    $conn  = mysqli_connect($servername,$username,$password,$dbname);
    if(!$conn){
        die("Connection failed: ".mysqli_connect_error());
    }else{
        echo "Connected successfully";
    }  

    if(mysqli_query($conn,$query)){
        echo "Contact edited";    
    }
?>
<html><head></head>
    <body>
   <form action="edit.php" method = "POST">
      Add text only to the ones you want changed:<br><br>
        NAME<input type="text" value="<?php echo $del_name?>" name="name"><br>        
        ADDRESS<input type="text" value="<?php echo $del_address?>" name="address"><br>  
        PHONE NUMBER <input type="text" value="<?php echo $del_phone ?>" name="number"><br>  
        EMAIL <input type="text" value="<?php echo $del_email ?>" name="email"><br>  
      <input type="submit" value="Submit">
    </form>
    </body>
</html>

替换
$query

$query = "UPDATE `contacts` 
          SET email = '$email2', phone = '$number2', address = '$address2', name = '$name2' 
          WHERE id = '$del_id'";

可用于
WHERE
子句中

您的更新语句错误:

"UPDATE `contacts` SET email = '$email2' AND phone = '$number2' AND address = '$address2' AND name = '$name2' WHERE id = '$del_id'" 注 我添加了limit子句
limit1
,以限制受update语句影响的行数。在这种情况下,我将其设置为
1
,以确保我们正在更新一行。我相信你也会想要的

<强> *,请考虑使用MySQL编写的查询或PDO < /强>

$query = "UPDATE `users` SET `userpassword` = CONCAT(`userpassword`, 'a') WHERE `user_id` = 1";

阅读指南

这不是更新的工作原理。请参阅手册-
mysqli\u错误($conn)
会告诉您的。一旦您解决了这个问题,就开始学习准备好的语句;您可以进行注射。POST vs GET…不是您的答案,但非常重要:您的代码容易受到攻击。如果这是你想要实现的,请使用修复它!为什么我会得到否定的答案?检查mysql更新指南并设置
column=column+data
很抱歉,mysqli是您必须使用的尝试它,它不会工作,除非电子邮件恰好是一个整数阅读上帝在您更新时提供的文档您必须设置
column=column+您需要添加的内容
$query = "UPDATE `users` SET `userpassword` = CONCAT(`userpassword`, 'a') WHERE `user_id` = 1";