使用数组更新数据库
Updating a database using arrays
我正在尝试使用数组更新数据库,但我似乎做不到。我只能使用字符串和数字更新它,但不能使用数组。然后我试着回显出字符串、数字和数组,只是为了看看我在制作数组时是否犯了错误。请看:
$string = "string";
$num = 10;
$array[0][0] = "array";
echo $string."</br>";
echo $num."</br>";
echo $array[0][0]."</br>";
输出:
string
10
array
但是使用 mysql 将数据插入到 table 中:
$table = "userLogin";
$column = "username";
使用字符串:
$query= "INSERT INTO $table($column)VALUES($string)";
$result = mysql_query($query);
table中的输出:
string
使用号码:
$query= "INSERT INTO $table($column)VALUES($number)";
$result = mysql_query($query);
table中的输出:
10
但是当你使用数组时:
$query= "INSERT INTO $table($column)VALUES($array[0][0])";
$result = mysql_query($query);
table中的输出:
没有变化。这是为什么?我认为由于所有字符串、数字和数组都可以使用 echo 命令进行回显,因此在更新数据库时也可以同样使用它们。但似乎您只能使用字符串和数字更新它们。除非,我做错了什么。如果我做错了什么,请告诉我。谢谢你。
PHP arrays-in-strings 201(中级):PHP 的字符串解析器不是贪婪的,默认情况下会忽略双引号字符串中的多维数组引用。
例如
$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 解析整个数组引用,而不仅仅是第一个维度。
您的问题的具体情况:
$query= "INSERT INTO $table($column)VALUES($array[0][0])";
实际上变成了
$query= "INSERT INTO $table($column)VALUES(Array[0])";
^^^^^
其中 Array
是一个 unknown/invalid 字段名称,[0]
是一个明显的语法错误。
我正在尝试使用数组更新数据库,但我似乎做不到。我只能使用字符串和数字更新它,但不能使用数组。然后我试着回显出字符串、数字和数组,只是为了看看我在制作数组时是否犯了错误。请看:
$string = "string";
$num = 10;
$array[0][0] = "array";
echo $string."</br>";
echo $num."</br>";
echo $array[0][0]."</br>";
输出:
string
10
array
但是使用 mysql 将数据插入到 table 中:
$table = "userLogin";
$column = "username";
使用字符串:
$query= "INSERT INTO $table($column)VALUES($string)";
$result = mysql_query($query);
table中的输出:
string
使用号码:
$query= "INSERT INTO $table($column)VALUES($number)";
$result = mysql_query($query);
table中的输出:
10
但是当你使用数组时:
$query= "INSERT INTO $table($column)VALUES($array[0][0])";
$result = mysql_query($query);
table中的输出:
没有变化。这是为什么?我认为由于所有字符串、数字和数组都可以使用 echo 命令进行回显,因此在更新数据库时也可以同样使用它们。但似乎您只能使用字符串和数字更新它们。除非,我做错了什么。如果我做错了什么,请告诉我。谢谢你。
PHP arrays-in-strings 201(中级):PHP 的字符串解析器不是贪婪的,默认情况下会忽略双引号字符串中的多维数组引用。
例如
$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 解析整个数组引用,而不仅仅是第一个维度。
您的问题的具体情况:
$query= "INSERT INTO $table($column)VALUES($array[0][0])";
实际上变成了
$query= "INSERT INTO $table($column)VALUES(Array[0])";
^^^^^
其中 Array
是一个 unknown/invalid 字段名称,[0]
是一个明显的语法错误。