mysql查询的问题似乎无法找到原因


Issue with mysql query cant seem to find out why

我正试图将一个用户id上传到我为一个统一项目制作的食谱网站上的数据库中

在我将$_SESSION添加到insert语句之前,insert代码一直运行良好。

这就是我的代码目前的样子:

$query = "INSERT INTO `recipename` (mealname,ingredients,hours,minutes,recipe,imagepath,userID)VALUES ('$mealname', '$ingredients','$hours','$minutes','$recipe','$image'," . $_SESSION['userid'] . ")";
mysqli_query($db_server, $query) or die("Insert failed. ". mysqli_error($db_server));  

回声:

INSERT INTO recipename(mealname,ingredients,hours,minutes,recipe,imagepath,userID) VALUES ('misbah', 'ss','1','1','s','','')

========================================================================这就是我不断得到的错误。。

插入失败。您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解在第1行的")"附近使用的正确语法

我对代码还是个新手,所以很困惑。

会话['userid']只是数字吗?如果它也包含文本,那么查询的前后都缺少引号,就像其他变量一样。

但是,在此之前,请先尝试回显$_SESSION['user_id'],然后再尝试查询,看看它是否有效。如果是,那么就像我之前说的,加上引号。我们发现您的查询不起作用,因为您的Session标记中从未有值,因此需要引号来更正语句的末尾。现在的问题是找出你的$_SESSION['user_id']值在哪里或发生了什么。

$query = "INSERT INTO `recipename` (mealname,ingredients,hours,minutes,recipe,imagepath,userID)VALUES ('$mealname', '$ingredients','$hours','$minutes','$recipe','$image','" . $_SESSION['userid'] . "')";

你能试试这个吗,userid值用引号括起来。如果Userid列的数据类型是int,那么您需要确保会话处理程序值中有值,如果会话Userid值不是整数,那么它也可能会给出错误。

     $query = "INSERT INTO `recipename` (mealname,ingredients,hours,minutes,r ecipe,imagepath,userID)VALUES ('$mealname', '$ingredients','$hours','$minutes','$recipe','$image','" . $_SESSION['userid'] . "')";