PHP 将带有 stdclass 的数组插入到 MySQL


PHP insert Array with stdclass to MySQL

    array(115) {
  [0]=>
  object(stdClass)#3 (13) {
    ["_id"]=>
    string(24) "57074056e4b03cad2f940060"
    ["admin_name"]=>
    string(5) "ramil"
    ["code"]=>
    string(10) "3596495399"
    ["duration"]=>
    int(1440)
  }
  [1]=>
  object(stdClass)#4 (13) {
    ["_id"]=>
    string(24) "57074056e4b03cad2f94005f"
    ["admin_name"]=>
    string(5) "ramil"
    ["code"]=>
    string(10) "7860239069"
    ["duration"]=>
    int(1440)
  }
  }
  ..........
  ..........

这是一张热点代金券。

var_dump ($data); //sample output above.

我刚启动 PHP 顺便说一句,$data是从 API 调用的。

这是阵列$data的成功内爆。

$array=array($data_convert);
$value=implode(" ",$array);
echo $value;
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

如何循环和插入数据库。

if (mysqli_query($conn, $sql)) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>

如果你有$data,你必须使用这个循环它:

<?php
    ...
    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "myDB";
    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    foreach($data as $k => $v){
        $sql = "INSERT INTO table_name (id,admin_name,code,duration) VALUES (" . $v->_id . "," . $v->admin_name . "," . $v->code . "," . $v->duration . ")";
        if (mysqli_query($conn, $sql)) {
            echo "New record created successfully";
        } else {
            echo "Error: " . $sql . "<br>" . mysqli_error($conn);
        }
    }
?>

你有一个对象数组,所以你必须输入每个对象,获取值并插入到数据库中。

试试这样的事情。

function insert_data($dataObj){
  foreach($dataObj as $data){
      if(is_object($data)){
          // return field values and name as string 
          //something like this- (sn, answer) VALUES ([value-1],[value-2])
          $fieldValueString = $this->_array_to_string($data);
          $queryString = "INSERT INTO <tablename> $fieldValueString";
          //Execute query
          return $this->_link->query($queryString ); 
      }
   }<!-- ./foreach -->
}

配套功能:

public function _array_to_string($array){
    //Fetch where condition in a string
    $string = "";
    if($array !="" && count($array) >0){ 
        //Fetch fileds
        $dataArrayField = array();
        //Fetch values
        $dataArrayValue = array();
        foreach($filedsValue as $field => $value){ 
           $dataArrayValue[] = $value; 
           $dataArrayField[] = $field; 
        }
    $string = "( ".implode(", ", $dataArrayField)." ) VALUES ( '".implode("', '", $dataArrayValue)."' )";
    }
    return $string;
}