我正在尝试将用户ID上传到配方网站上的数据库,我正在制作一个uni项目,
插入代码完美运行,直到我将$_SESSION
添加到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行的')'附近使用正确的语法
我仍然是代码的新手,所以我对此感到困惑..
答案 0 :(得分:0)
是Session ['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'] . "')";
答案 1 :(得分:0)
你可以尝试这个,用引号括起来的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'] . "')";