我试过这个php代码:
echo $_SESSION['user_id']."<br />\n";
$sql = "UPDATE user_passwords SET status ='off' WHERE users_id = 'user_id'";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
输出html通知:
161 // Nr. user from users
Record updated successfully
但在MySQL中没有记录.... 当我像这样修改php时:
echo $_SESSION['user_id']."<br />\n";
$sql = "UPDATE user_passwords SET status ='off' WHERE users_id ='161'";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
输出html通知:
161 // Nr. user from users
Record updated successfully
并且在MySQL中都没问题。
哪里可能出错?
答案 0 :(得分:1)
$ sql =“UPDATE user_passwords SET status ='off'WHERERE users_id =' user_id '”;
在第一次尝试中,您尝试使用字符串'user_id'作为用户的ID。
您应该使用$_SESSION['user_id']
代替或定义php变量:
$user_id = $_SESSION['user_id'];
然后您可以使用,但使用'$'前缀$user_id
另外:当您期望变量为整数时,不应在SQL中使用撇号。 Plus2:处理$ _SESSION,$ _GET和$ _POST变量时应该使用 mysqli_real_escape_string
答案 1 :(得分:1)
你的错误在WHERE users_id = 'user_id'";
它应该是您的会话变量user_id
<?php
echo $_SESSION['user_id']."<br />\n";
$sql = "UPDATE user_passwords SET status ='off' WHERE users_id = '".$_SESSION['user_id']."'";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
?>
注意:使用准备好的陈述。防止sql注入。
答案 2 :(得分:0)
你在sql string中错误地传递变量,
public static List<Quote> getCustomerQuotes(QuoteFilter filter)
{
using (var db = new AppDBContext())
{
var q = db.Quotes.Where(u =>
(filter.type != null ? u.quoteType == filter.type : u.quoteType > 0) &&
(filter.only_permitable != null ? !Values.NON_PERMITABLE_QUOTES.Contains(u.quoteType) : u.permitType > 0) &&
(filter.quote_status != null ? u.quote_status == filter.quote_status : u.quote_status > -100) &&
(!string.IsNullOrEmpty(filter.quotenumber) ? u.quote_number.Contains(filter.quotenumber) || u.groupName.Contains(filter.quotenumber) : u.quoteType > 0) &&
(!string.IsNullOrEmpty(filter.permitnumber) ? u.permit_number.Contains(filter.permitnumber) || u.groupName.Contains(filter.permitnumber) : u.quoteType > 0) &&
(filter.permit_status != null ? u.permit_status == filter.permit_status : u.quoteType > 0) &&
(filter.quoteId != null ? u.Id == filter.quoteId : u.Id > 0) &&
(filter.customer_id != null ? u.customer_id == filter.customer_id : u.customer_id > -1)
).OrderByDescending(u => u.Id);
//FileLogger.Log("getCustomerQuotes", q.ToString());
return q.ToList();
}
}
在上面的字符串中,您没有带变量名的$符号,但找不到您应该使用的正确用户ID。
$sql = "UPDATE user_passwords SET status ='off' WHERE users_id = 'user_id'";
^
答案 3 :(得分:0)
在您的更新查询中,'user_id'的行为类似于值,而不是包含会话用户ID的变量。这就是它无法正常工作的原因。
试试这个
$user_id = $_SESSION['user_id'];
$sql = "UPDATE user_passwords SET status ='off' WHERE users_id = '$user_id'";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}