mysql查询中的SESSION变量


SESSION var in mysql query

是否可以在mysql的INSERTSELECT语句中使用$_SESSION[var]

$query = "INSERT INTO table1 (id, var1, var2)
            VALUES (NULL, '$_SESSION[var1]', '$_SESSION[var2]')";
mysql_query($query);
die(mysql_error()); 

注意:我有session_start();在我所有的页面开始

在对变量执行查询之前对它们进行消毒是一个好主意:

$var1 = mysql_real_escape_string($_SESSION['var1']);
$var2 = mysql_real_escape_string($_SESSION['var2']);
$query = 
    "INSERT INTO table1 (id, var1, var2) " .
    "VALUES (NULL, '" . $var1 . "', '" . $var2 . "')";
mysql_query($query) or die(mysql_error()); 

请注意,无论是否发生错误,您的最后一个时间行代码die(mysql_error())都会导致脚本停止执行。

另外,您可能想要查看数据库交互的PDO。

是。在我看来,在插入字符串中指定数组变量的最好方法是在它周围加上花括号,这样你就可以在数组键

周围使用单引号:
$query = "INSERT INTO table1 (id, var1, var2)
              VALUES (NULL, '{$_SESSION['var1']}', {$_SESSION['var2']}')";