我想使用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);
?>
EDITED
将$id
放在显示错误未定义变量id之后..这意味着什么?
答案 0 :(得分:1)
$id
,引用它会生成警告并运行以下查询:
UPDATE admin SET first_name='Rajendra', last_name='Arora' WHERE id=''
您需要在某处设置$id
。
还要注意SQL注入取决于此值的来源,如果是来自用户输入,则需要将其转换为整数,如果是字符串则转义为。
如果是整数,则不需要在其周围加上引号(WHERE id=1
而不是WHERE id='1'
)。
答案 1 :(得分:1)
首先应设置您的ID,然后您的ID可能不是数据库中的字符串(varchar,char或text)。它应该是数字而且应该是数字。在这种情况下,请不要将ID包装在&#39;中。只有字符串数据应该包含在&#39;&#39;中。
答案 2 :(得分:0)
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']");
}
使用while
的任何其他方式都将更改表中的所有用户名。
如果您在此表中有更多行,则需要采用其他方法。
答案 3 :(得分:0)
尝试这样的事情,删除单引号
// Assign ID here
$id= 1;
mysqli_query($con,"UPDATE admin SET first_name='Rajendra', last_name='Arora' WHERE id='$id'");
答案 4 :(得分:0)
定义$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
来自$_GET
或$_POST
变量,请务必不要直接将其嵌入查询中!