我正在尝试将php数组插入sql数据库,如下所示:
$i=1
$sql="INSERT INTO table(itemname) VALUES ('$_SESSION[someVariable][$i]')";
但是,数据库中的名称始终为Array[1]
。它不是$_SESSION[someVariable][$i]
我想知道是否还有声明这个?我知道我搞砸了报价
答案 0 :(得分:7)
如果在字符串中嵌入数组项,请确保用大括号包含它们:
$sql="INSERT INTO table(itemname) VALUES ('{$_SESSION[$somevariable][$i]}')";
或者,使用字符串连接:
$sql="INSERT INTO table(itemname) VALUES ('" . $_SESSION[$somevariable][$i] . "')";
或临时变量:
$itemname = $_SESSION[$somevariable][$i];
$sql="INSERT INTO table(itemname) VALUES ('$itemname')";
PS,我已将i1
替换为$somevariable
。在评论讨论后,您已将其更改为somevariable
,但作为变量,当然需要$
。
答案 1 :(得分:3)
您需要花括号才能在字符串中使用数组:
$sql="INSERT INTO table(itemname) VALUES ('{$_SESSION[i1][$i]}')";
您获得Array[1]
的原因是因为数组正在转换为字符串Array
而$i
为1。