gpt4 book ai didi

php - 您的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:52 26 4
gpt4 key购买 nike

我正在尝试更新 mysql 中的一行,但是,每次都会出现 1024 号错误

@$name= $_POST['name'];
@$bio=$_POST['bio'];
@$email=$_POST['email'];

if(!empty($_POST['name']) && !empty($_POST['bio']) && !empty($_POST['email']) )
{
$result="SELECT * FROM accounts where email='$email'";
$row = mysqli_fetch_array(mysqli_query($con,$result),MYSQLI_ASSOC);

$row['id']=$id;
$Sql_Query = mysqli_query($con,"UPDATE profile SET name= '$name', bio = '$bio' WHERE id = '$id'");

if(mysqli_query($con,$Sql_Query)){
echo 'Record Updated Successfully';
}
else{
echo 'Something went wrong, whether id is not present or something else'.mysqli_error($con);
}
}else
{
echo 'missing parameters';
}

错误

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1' at line 1

任何帮助将不胜感激

最佳答案

(查看底部附近的编辑)。

这里发生的事情是您为 UPDATE 执行了两次相同的查询,您应该得到的错误是“1”。 (这在 edit 之前)。

改变你的

$Sql_Query = mysqli_query($con,"UPDATE profile SET name= '$name', bio = '$bio' WHERE id = '$id'");
// ^^^^^^^^^^^^^^^^^


if(mysqli_query($con,$Sql_Query)){
// ^^^^^^^^^^^^^^^^^
echo 'Record Updated Successfully';
}

只是

if($Sql_Query){
echo 'Record Updated Successfully';
}

并使用准备好的语句来帮助防止 SQL 注入(inject)。


根据 your edit您添加的位置:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1' at line 1

...这是我怀疑并发布的 in a comment早些。

顺便说一句;那些 @ 字符是错误抑制器,应该在开发过程中删除。

使用 PHP's error reporting会在一定程度上有所帮助,但对于 POST 数组的那些 @'ed 变量,如果它们有任何问题,则不会。


编辑:

正如 IncredibleHat 给出的评论中所述,这一行:

$row['id']=$id;

倒过来应该写成:

$id = $row['id'];

id 将分配给“行”,而不是相反。

我没看到,我的错。很好地捕获了这一点。

关于php - 您的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51677698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com