mysql查询中的SESSION var

时间:2011-11-18 22:34:56

标签: php mysql session-variables

是否可以在mysql的$_SESSION[var]INSERT语句中使用SELECT,如下所示

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

注意:我所有页面的开头都有session_start();

2 个答案:

答案 0 :(得分:2)

在对sanitize your vars执行查询之前,PDO好主意:

$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())都会导致脚本停止执行。

此外,您可能需要查看{{3}}以进行数据库交互。

答案 1 :(得分:1)

是。在我看来,在插值字符串中指定数组变量的最佳方法是在其周围放置大括号,以便您可以在数组键周围使用单引号:

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