Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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 如何使用'id'更新数据库?_Php_Mysql - Fatal编程技术网

Php 如何使用'id'更新数据库?

Php 如何使用'id'更新数据库?,php,mysql,Php,Mysql,我想用id更新我的数据库,我已经有了一个数据库,它的名字是 现在,当我使用WHERE college='1'更新我的数据库时,它工作成功,但当我使用id更新我的数据库时,它不工作,请帮助,我的数据库id=1,我正在为之工作 以下是我的源代码: <?php $con=mysqli_connect("localhost","root","Bhawanku","members"); // Check connection if (mysqli_connect_errno()) { ech

我想用
id
更新我的数据库,我已经有了一个数据库,它的名字是

现在,当我使用
WHERE college='1'
更新我的数据库时,它工作成功,但当我使用
id
更新我的数据库时,它不工作,请帮助,我的数据库
id=1
,我正在为之工作

以下是我的源代码:

<?php
$con=mysqli_connect("localhost","root","Bhawanku","members");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"SELECT * FROM admin");

while($row = mysqli_fetch_array($result))
        {
            echo "(".$row['id'].") ".$row['first_name']." ".$row['last_name'];
        }

mysqli_query($con,"UPDATE admin SET first_name='Rajendra', last_name='Arora'
WHERE id='$id'");


mysqli_close($con);
?>

id
是一个数字,而不是字符串。将其更改为:

mysqli_query($con,"UPDATE admin SET first_name='Rajendra', last_name='Arora' WHERE id=".$row['id']);
编辑 您的
id
仅在循环中使用。尝试将其从
while
更改为
if

$result = mysqli_query($con,"SELECT * FROM admin limit 0, 1");
if ($row = mysqli_fetch_array($result)) {
    mysqli_query($con,"UPDATE admin SET first_name='Rajendra', last_name='Arora' WHERE id=$row['id']");
}
使用
而使用
的任何其他方式都将更改表中的所有用户名。

如果此表中有多行,则需要另一种方法。

尝试类似的方法,删除单引号

// Assign ID here 
$id= 1;
mysqli_query($con,"UPDATE admin SET first_name='Rajendra', last_name='Arora' WHERE id='$id'");

$id
未在代码中设置,引用它将生成警告并运行以下查询:

UPDATE admin SET first_name='Rajendra', last_name='Arora' WHERE id=''
您需要在某处设置
$id

还要注意SQL注入,这取决于该值来自何处,如果它来自用户输入,则需要将其转换为整数,如果它是字符串,则需要转义


如果它是一个整数,则不需要在其周围加引号(
其中id=1
,而不是
其中id='1'
)。

首先应该设置您的id,其次您的id可能不是数据库中的字符串(varchar、char或text)。它应该是数字。在这种情况下,不要将id包装在“”中。只有字符串数据应包装在“”中

定义
$id
,然后类似的东西应该可以工作:

if ($stmt = mysqli_prepare($conn, "UPDATE admin SET first_name='Rajendra', last_name='Arora' WHERE id=?")) {
    mysqli_stmt_bind_param($stmt, "i", $id);
    mysqli_stmt_execute($stmt);
}

如果
$id
来自
$\u GET
$\u POST
变量,请确保不要将其直接嵌入查询中

$id
在哪里定义?您在哪里设置
$id
变量?您必须在更新查询之前为$id赋值,因为您必须定义idso如何使
$id
变量请帮助!!以同样的方式设置任何变量:
$id=1
但我想通过使用
$id
完成它。我正在为一个小项目工作,它将使用“$id”从数据库获取数据……我真的不明白-您的代码显示您回显了管理表中的每个条目,然后在此之后对一些未定义的$id运行更新。您想做什么?我尝试了您的代码,但它给出了一些提示此错误:
Parse error:syntax error,意外的“”(T_ENCAPSED_和_空格),C:\xampp\htdocs\raj.php第11行的标识符(T_STRING)或变量(T_variable)或数字(T_NUM_STRING)应在引号外,如我的原始答案所示。