我正试图将一个用户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'] . "')";