PHP更新表逗号错误
我正在更新phpmyadmin中的一个表,如下所示。我的问题基本上是:为什么我需要在PHP更新表逗号错误,php,mysql,Php,Mysql,我正在更新phpmyadmin中的一个表,如下所示。我的问题基本上是:为什么我需要在'$username'后面加逗号,即这个$query.=“username='$username',”不确定为什么需要这个逗号 function UpdateTable() { global $connection; $username = $_POST['username']; $password = $_POST['password']; $id = $_POST['id'];
'$username'
后面加逗号,即这个$query.=“username='$username',”代码>不确定为什么需要这个逗号
function UpdateTable()
{
global $connection;
$username = $_POST['username'];
$password = $_POST['password'];
$id = $_POST['id'];
$query = "UPDATE users SET "; // username is the name of the column in the database, you need the space in between
$query.="username = '$username' , ";
$query.= "password = '$password' ";
$query.= "WHERE id = $id ";
$result = mysqli_query($connection,$query);
if(!$result)
{
die("Query failed". mysqli_error($connection));
}
}
因为这是MySQL语法。检查MySQL文档:
不必遵循“$user\u name”
必须在下一次作业之前,在下一行
就像“$password”
后面的空格一样,严格来说并不需要
function UpdateTable()
{
global $connection;
$username = $_POST['username'];
$password = $_POST['password'];
$id = $_POST['id'];
$query = "UPDATE users SET "; // username is the name of the column in the database, you need the space in between
$query.="username = '$username' , ";
$query.= "password = '$password' ";
$query.= "WHERE id = $id ";
$result = mysqli_query($connection,$query);
if(!$result)
{
die("Query failed". mysqli_error($connection));
}
}
在下一行的之前必须有空格,其中
将语句的格式想象为:
UPDATE users
SET username = ?
, password = ?
WHERE id = ?
逗号是必需的,基本上读作“和也设置”
更好的模式是在需要的行上预先加上所需的空格和/或逗号。而不是记着在不需要的地方去做。e、 g
$sql = "UPDATE users";
$sql.= " SET username = ?";
$sql.= ", password = ?";
$sql.= " WHERE id = ?";
在这里没什么区别。但当您实际需要动态生成SQL时,这种模式就容易多了
还有一些想法
不要在数据库中存储明文密码。而是存储哈希值
代码似乎易受SQL注入攻击
将准备好的语句与绑定占位符一起使用。。。静态SQL文本,不是动态生成的SQL。PHPMyAdmin不是数据库。它是MySQL数据库的web界面。逗号是必需的,因为这是UPDATE
语句的正确SQL语法。永远不要存储纯文本密码!请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用密码\u hash()
。在散列之前,请确保您在它们上安装或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。表示了解的语句。即使是这样也不安全!我投票结束这个问题,因为如果OP阅读了优秀的用户手册,他会看到正确的SQL语法。谢谢:),我不知道我认为这与我以前经常弄糟的一些间距问题有关(比如在设置后忘记放置空格)