PHP将带有stdclass的数组插入MySQL

PHP将带有stdclass的数组插入MySQL,php,arrays,Php,Arrays,这是一张热点券 array(115) { [0]=> object(stdClass)#3 (13) { ["_id"]=> string(24) "57074056e4b03cad2f940060" ["admin_name"]=> string(5) "ramil" ["code"]=> string(10) "3596495399" ["duration"]=> int(1440)

这是一张热点券

    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)
  }
  }
  ..........
  ..........
我在将其插入数据库时遇到问题。我刚开始使用PHP,顺便说一句,$数据是从API调用的

这是数组$data的成功内爆

var_dump ($data); //sample output above.
$array=array($data\u convert);
$value=内爆(“,$array);
echo美元价值;

如果您有$data,则必须使用以下方法循环它:

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

mysqli_close($conn);
?>


您有一个对象数组,因此必须输入每个对象,获取值并插入到数据库中。

尝试类似的操作

<?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);
        }
    }
?>

哪个是循环-在哪里?环路在哪里?如何使用
$data
?你的问题是什么?这是成功的内爆$array=array($data\u convert)$值=内爆(“,$array);echo美元价值;loops=>我在编译代码时遇到此错误simon“您的SQL语法有错误;请查看与您的MariaDB服务器版本对应的手册,以了解在第1行“b03cad2f940060,ramil,35964953991440”附近使用的正确语法错误:插入到“NaD,查询是演示性的”。您必须用您的查询更改我的查询,但保留$v引用。示例:创建一个具有id、管理员名称、代码和持续时间的表。称之为“用户”。在我的SQL“table\u name”中更改并替换为“user”。如果您有自动增量id,请不要使用$v->\u id。请使用“null”
<?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;
}