更新mysqli中的查询失败

时间:2016-10-05 09:44:00

标签: php mysqli

我尝试从更新密码电子邮件列,此处id是所选行的ID。< / p>

在失败时更新查询

require('dbconfig.php');
$id = $_GET['id'];
//echo "id is ",$id;
$sql1 = mysqli_query($con,"select * from login");
if(!$sql1)
{
    echo "Query failed1";
}
else
{
    $sql_num = mysqli_num_rows($sql1); // Returns No. of rows
    echo "Rows are ",$sql_num;
    while($row=mysqli_fetch_array($sql1))
    {
        //echo "Id in add is ",$id;
        if($row['client_id']==$id)// selects the row whic is equal to the id of the session
        {
            echo $sq1;
            echo "Name : ",$row['username'] . " " . "Password : ",$row['password'] . "<br>";
            if($row['client_id']==$id){
            $sql1_update = mysqli_query($con,"Update login Set password = '".$_POST['$password']."', email = '".$_POST['$email']."'"); // Throwing error Fatal error: Function name must be a string in...
            echo "Successfully Inserted";*/
            }
            }
        }
    }
}

3 个答案:

答案 0 :(得分:1)

请理解错误说明的内容并进行一些研究,但这次我会回答你。

$_POST('$password')替换为$_POST['password'],将$_POST('$email')替换为$_POST['email']$_POST 数组; a 功能

另外,你不小心(我认为)注释了这个if statement的开放大括号:

if ($sq1 ==1) 
    //  {   

最后,更新声明应为:

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
  

注意SQL UPDATE语句中的WHERE子句!   WHERE子句指定应更新的记录或记录。如果省略WHERE子句,则所有记录都将更新!

Source

答案 1 :(得分:1)

不遵循 basic syntax of the UPDATE,您必须更改在SQL社区中遵循的UPDATE代码。

更新语法:

UPDATE语句用于更新表中的现有记录:

UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value  
  

请注意UPDATE语法中的WHERE子句: WHERE子句指定应更新的记录。如果省略WHERE子句,则所有记录都将更新!

但是,更新一个表时MySQL UPDATE语句的完整语法是:

UPDATE [ LOW_PRIORITY ] [ IGNORE ]
table
SET column1 = expression1,
    column2 = expression2,
    ...
[WHERE conditions]
[ORDER BY expression [ ASC | DESC ]]
[LIMIT number_rows];

OR

使用MySQL中另一个表的数据更新一个表时,UPDATE语句的语法是:

UPDATE table1
SET column1 = (SELECT expression1
               FROM table2
               WHERE conditions)
[WHERE conditions];

OR

更新多个表时MySQL UPDATE语句的语法是:

UPDATE table1, table2, ... 
SET column1 = expression1,
    column2 = expression2,
    ...
WHERE table1.column = table2.column
AND conditions;

解决您的问题

您的错误代码:

$sql1_update = mysqli_query($con,"Update login Set password = '".$_POST['$password']."', email = '".$_POST['$email']."'")

说明:此处您尚未提供id,您必须在哪个字段ID中更新数据。

因此,您的代码应如下所示。

正确代码:

  

如果您需要在$_REQUEST[]的帮助下进行更新,则代码应如下所示。

<?php
$id = $_REQUEST['id'];
$sql1_update = mysqli_query($con,"UPDATE login SET password = '".$_POST['$password']."', email = '".$_POST['$email']."' WHERE `id`='".$id."'"); 
?>

完成上述所有检查后如果仍然失败,您可以在下面做笔记。

  

注意:将echo放到语句中,然后在那里退出操作。之后,您将看到查询到浏览器,然后复制该查询并放在SQL部分并在那里执行查询。如果您的所有操作都是正确的,则删除退出并回显,然后运行代码。

希望所以这个解释可能会明白你的理解目的。

快乐编码:)

答案 2 :(得分:0)

您的文件的任何部分是否已被弃用?如果是这样,每次都会抛出一个错误。不推荐的代码和更新的代码不会相互通信。我认为这很难。