【问题标题】:How to insert PHP array into SQL database如何将 PHP 数组插入 SQL 数据库
【发布时间】:2016-01-10 22:30:12
【问题描述】:

我正在尝试将 php 数组插入 sql 数据库,如下所示:

$i=1    
$sql="INSERT INTO table(itemname) VALUES ('$_SESSION[someVariable][$i]')";

但是,数据库中的名称始终为Array[1]。不是$_SESSION[someVariable][$i]中包含的值

我想知道是否有任何声明?我知道我搞砸了引号

【问题讨论】:

  • i1 是什么意思?那是无效的语法。你的意思是 'i1'$i1 还是别的什么?
  • @trincot i1 是一个有效的数组键
  • 除非它被定义为常量否则不会。
  • $array['i1']='fish';echo $array['i1']; =fish
  • 是的,但是你加了引号。我没有看到问题中的那些。这就是我问的原因。好的,我明白了,这是引号围绕整个表达式的语法。我的错。

标签: php mysql arrays sql-server


【解决方案1】:

如果您将数组项嵌入到字符串中,请确保将它们包含在花括号中:

$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。在 cmets 讨论之后,您已将其更改为 somevariable,但作为变量,它当然需要 $

【讨论】:

  • 谢谢!花括号是我所缺少的!
【解决方案2】:

您需要大括号才能在字符串中使用数组:

$sql="INSERT INTO table(itemname) VALUES ('{$_SESSION[i1][$i]}')";

您得到Array[1] 的原因是因为数组被转换为字符串Array$i 是1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 2016-05-26
    • 2014-12-30
    • 2017-10-03
    • 2023-03-05
    相关资源
    最近更新 更多