要理解您的错误消息,我认为需要对数组进行一些解释。
如果你使用像这样的括号$bindVars[]
,你不需要说,它是一个数组,通过调用array()
功能。
PHP 理解括号[]
作为数组声明。
您的声明带有括号[]
and the array()
功能
$BindVars[] = array($Email,$pass);
// same as:
$BindVars = array(
array($Email, $pass);
);
创建一个新数组inside $bindVars
包含元素$Email
& $pass
.
So, $bindVars
由于括号的原因已经是一个数组[]
。这给了我们一个多维数组.
在你的代码中,它是一个二维数组,代表一个表。它是最常用的多维数组。
A 3维数组 like $bindVars[][][]
(3对括号)代表立方体或骰子。
A 4维数组 $bindVars[][][][]
(4 对括号)是一个立方体,其每边都有另一个维度。--- 每增加一个维度,就会变得更加令人难以置信 ---
回到二维数组:
The 1. 尺寸是行或记录
The 2. 尺寸是列或字段。
// 1. Dimension: 1. row
echo $bindVars[0]; // Output: Array() Here is your mysqli error coming from!
警告:mysqli::real_escape_string() 期望参数 1 为
给定的字符串、数组...
/* --- 1. Record/Row --- */
// 2. Dimension: 1. row, 1. column
echo $bindVars[0][0]; // Output: value of $Email
// 2. Dimension: 1. row, 2. column
echo $bindVars[0][1]; // Output: value of $pass
/* --- 2. Record/Row --- */
// 1. column
echo $bindVars[1][0]; // Output: value of $Email
// 2. column
echo $bindVars[1][1]; // Output: value of $pass
// And so on
Change
$BindVar[] = array($Email,$pass);
to
$BindVar = array($Email,$pass);