2016-04-08 10 views
0
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がMySQLにstdclassで配列を挿入

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

これはDBに挿入する際に問題があります。私はちょうどPHPのbtwを始めた$データは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()); 
} 

How to loop and inserting to the db.?

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

mysqli_close($conn); 
?> 
+1

_whichがlooping_ある - どこ?ループはどこですか?あなたは '$ data'をどのように使いますか?あなたの問題は何ですか? – Federkun

+0

これは成功したimplode $ array = array($ data_convert)です。 $ value = implode( ""、$ array); echo $ value; – NaD

+1

ループ=> https://www.howtoforge.com/loops_in_php – fusion3k

答えて

0

あなたはそれがこれを使用してループを持っている:

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

あなたが値を取得し、すべてのオブジェクトに入力する必要がありますので、オブジェクト配列を持っていますデータベースに挿入します。

+0

コードシモンのコンパイル時にこのエラーが発生しました。「SQL構文に誤りがあります.MariaDBサーバーのバージョンに対応したマニュアルをチェックしてください'b03cad2f940060、ramil、3596495399,1440の近くで使用する構文)' 1行目のエラー:INSERT INTO " – NaD

+0

NaD、クエリはdemostrativeです。クエリを使用してクエリを変更する必要がありますが、$ vの参照は維持してください。例:id、admin_name、code、durationのテーブルを作成します。それを「ユーザー」と呼んでください。私のSQLの "table_name"を "user"に変更して置き換えます。 –

+0

自動インクリメントIDをお持ちの場合は、$ v - > _ idを使用しないでください。 "null"を使用する –

0

このような何かを試してみてください。..機能をサポート

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; 
} 
関連する問題