Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将数据插入foreach循环中的数组?_Php_Mysql - Fatal编程技术网

Php 如何将数据插入foreach循环中的数组?

Php 如何将数据插入foreach循环中的数组?,php,mysql,Php,Mysql,这些代码用于对不同的服务器执行相同的查询。我使用foreach循环连接不同的服务器,并使用updateDB函数执行查询我需要将失败的连接记录到阵列中 foreach ($lines as $value) { $servername = $value; $conn = new mysqli ($servername, $username, $password, $database); if ($conn->connect_error) { echo $serv

这些代码用于对不同的服务器执行相同的查询。我使用
foreach
循环连接不同的服务器,并使用
updateDB
函数执行查询

我需要将失败的连接记录到阵列中

foreach ($lines as $value) {

  $servername =  $value;

  $conn = new mysqli ($servername, $username, $password, $database);

  if ($conn->connect_error) {
      echo $servername."Connection failed:" . $conn->connect_error."<br>";
      $errorMessage = array("Servername" => $servername , "Error" => $conn->connect_error);
  }
  else {
    echo $servername." ".$database." Connected Succesfully <br>";
    updateDB($data, $servername, $conn);
  }
  $conn-> close();
}
但是,当我打印我的数组时,它只显示:

Array ( [0] => 192.168.0.47 [1] => No route to host ) 
前3条记录不在数组中。
我知道有点不对劲

$errorMessage=array(“服务器名”=>$Servername,“错误”=>$conn->connect\U错误)


但我已经找遍了,找不到解决办法。请帮忙。TQ

您应该添加到数组中,而不是在每个循环中写入新的数组


$errorMessages = array();
foreach ($lines as $value) {

    $servername = $value;

    $conn = new mysqli ($servername, $username, $password, $database);

    if ($conn->connect_error) {
      echo $servername."Connection failed: ".$conn->connect_error;
      $errorMessages[] = array("Servername" => $servername , "Error" => $conn->connect_error);
    } else {
        echo $servername." ".$database." Connected Succesfully";
        updateDB($data, $servername, $conn);
    }
    $conn-> close();
}

$errorMessages=array();
foreach(行作为$value){
$servername=$value;
$conn=newmysqli($servername、$username、$password、$database);
如果($conn->connect\u错误){
echo$servername.“连接失败:”.$conn->connect\u错误;
$errorMessages[]=数组(“服务器名”=>$Servername,“错误”=>$conn->connect\U错误);
}否则{
echo$servername.“.”$database.“已成功连接”;
updateDB($data、$servername、$conn);
}
$conn->close();
}

$errorMessages
将包含所需的错误消息。

您需要在现有数组元素中添加新数组,而不是覆盖以前的数组

$errorMessage[] = array("Servername" => $servername , "Error" => $conn->connect_error);

个人始终使用阵列推送:

array_push($errorMessages, array("Servername" => $servername , "Error" => $conn->connect_error));

这会将一个元素添加到数组的末尾。有关更多信息,请参见在
foreach
循环之前声明一个数组,并附加
$errorMessage
,以找到解决方案,以便将所有记录保存在数组中
$errorMessage[]=array(“Servername”=>$Servername,“Error”=>$conn->connect\u Error)这可能会解决您的问题。哪些记录?什么阵列?
array_push($errorMessages, array("Servername" => $servername , "Error" => $conn->connect_error));