[英]How to use Session Variable in MySQL Query
我試圖執行此查詢-
$sql="INSERT INTO REGISTRATIONS VALUES ('$_SESSION['fname']', '$_SESSION['username']', '$_SESSION['height']', '$_SESSION['image']');";
還有這個-
$sql="INSERT INTO REGISTRATIONS VALUES ($_SESSION['fname'], $_SESSION['username'], $_SESSION['height'], $_SESSION['image']);";
但是這兩個都返回錯誤。 所以我將會話變量存儲到普通的php變量中。 並嘗試執行查詢-
$name = $_SESSION['fname'];
$username = $_SESSION['username'];
$height = $_SESSION['height'];
$image = $_SESSION['image'];
$sql="INSERT INTO REGISTRATIONS VALUES ('$name', '$username', '$height', '$image');";
而且有效。
但是我想知道為什么前兩個不起作用,為什么我們必須將Session保存到另一個變量中才能起作用?
請幫忙 :)
您的代碼中有語法錯誤
$sql = "
INSERT INTO REGISTRATIONS
VALUES (
'$_SESSION['fname']',
'$_SESSION['username']',
'$_SESSION['height']',
'$_SESSION['image']'
);
";
'$_SESSION['fname']'
在這里引起錯誤。 如果沒有特殊語法,則無法訪問字符串內部的數組索引(請參見下文)。
使用串聯運算符分隔字符串和變量.
$sql = "
INSERT INTO REGISTRATIONS
VALUES ('"
.$_SESSION['fname'].
"', '"
.$_SESSION['username'].
"', '"
.$_SESSION['height'].
"','"
.$_SESSION['image'].
"');";
或使用PHP的變量插值 ,請參見“復雜(卷曲)語法”。 這是首選方式。
$sql = "
INSERT INTO REGISTRATIONS
VALUES (
'{$_SESSION['fname']}',
'{$_SESSION['username']}',
'{$_SESSION['height']}',
'{$_SESSION['image']}'
);
";
請注意,這僅適用於雙引號字符串。
試試這些
$sql="INSERT INTO REGISTRATIONS VALUES ('".$_SESSION['fname']."', '".$_SESSION['username']."', '".$_SESSION['height']."', '".$_SESSION['image']."')";
您可以使用
echo "$_SESSION[name]";
echo "{$_SESSION['name']}";
參見http://php.net/manual/en/language.types.string.php#language.types.string.parsing.simple
如果您有理由這樣做,那么,我不能為您提供幫助。 但還是一如既往:PHP很老,並且發展了很多,因此引入了不一致的語法。
還檢查如何在雙引號內使用關聯數組
http://php.net/manual/en/language.types.array.php#language.types.array.foo-bar
http://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.