首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用数组更新数据库

使用数组更新数据库
EN

Stack Overflow用户
提问于 2015-05-28 18:53:55
回答 1查看 121关注 0票数 0

我正在尝试使用数组更新数据库,但我似乎无法做到这一点。我只能使用字符串和数字更新它,但不能使用数组。然后,我试图回显字符串、数字和数组,只是想看看我是否犯了一个错误。请看一看:

代码语言:javascript
运行
复制
$string = "string";
$num = 10;
$array[0][0] = "array";

echo $string."</br>";
echo $num."</br>";
echo $array[0][0]."</br>";

产出:

代码语言:javascript
运行
复制
string
10
array

但是使用mysql将数据插入到表中:

代码语言:javascript
运行
复制
$table = "userLogin";
$column = "username";

使用字符串:

代码语言:javascript
运行
复制
$query= "INSERT INTO $table($column)VALUES($string)";
$result = mysql_query($query);

表中的产出:

代码语言:javascript
运行
复制
string

使用编号:

代码语言:javascript
运行
复制
$query= "INSERT INTO $table($column)VALUES($number)";
$result = mysql_query($query);

表中的产出:

代码语言:javascript
运行
复制
10

但是当您使用数组时:

代码语言:javascript
运行
复制
$query= "INSERT INTO $table($column)VALUES($array[0][0])";
$result = mysql_query($query);

表中的产出:

没有变化。为什么会这样呢?我认为,由于所有字符串、数字和数组都可以使用echo命令,所以在更新数据库时也可以使用这些字符串、数字和数组。但似乎您只能使用字符串和数字来更新它们。除非我做错了什么。如果我做错了什么,请告诉我。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-28 20:28:16

PHP字符串数组201 (中间层):PHP的字符串解析器并不贪婪,默认情况下将忽略双引号字符串中的多维数组引用。

例如:

代码语言:javascript
运行
复制
$foo = array();
$foo[0] = array();
$foo[0][1] = 'bar';

echo $foo;          // output: Array
echo "$foo[0]"      // output: Array
echo "$foo[0][1]"   // output: Array[1]
echo "{$foo[0][1]}" // output: bar
      ^----------^
echo $foo[0][1]     // output: bar

如果您想在双引号字符串中使用多维数组,那么,正如上面所述,您有两个选择:不要将它们连接到字符串中;或者使用{}符号强制PHP解析整个数组引用,而不仅仅是第一个维度。

你的问题的细节:

代码语言:javascript
运行
复制
$query= "INSERT INTO $table($column)VALUES($array[0][0])";

实际上成了

代码语言:javascript
运行
复制
$query= "INSERT INTO $table($column)VALUES(Array[0])";
                                           ^^^^^

其中Array是一个未知/无效的字段名,而[0]是一个平面语法错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30514893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档