2016-04-04 3 views
1

Ich habe Benutzerinformationen in json Format von pinterest api (oauth) abgerufeneEinfügen von Daten in mysql von json codierten Daten (pinterest api oauth) mit PHP

$me = $pinterest->users->me(array(
'fields' => 'username,first_name,last_name,image[large]' 
)); 

wenn I Drucken (Echo) Daten json decode Verwendung

$array_data = json_decode($me); 
echo "<pre/>";print_r($array_data); 

foreach ($array_data as $key=>$value){ 

    if($key == 'image'){ 
     echo $key. " url is=" . $value->large->url .'<br/>'; 
    }else{ 

     echo $key. "=" . $value .'<br/>'; 
    } 
} 
} 

Ergebnis:

stdClass Object 
(
[id] => 195414208739840616 
[username] => rajivsharma033 
[first_name] => Rajiv 
[last_name] => Sharma 
[bio] => 
[created_at] => 
[counts] => 
[image] => stdClass Object 
    (
     [large] => stdClass Object 
      (
       [url] => https://s-media-cache-ak0.pinimg.com/avatars/rajivsharma033_1459712414_280.jpg 
       [width] => 280 
       [height] => 280 
      ) 

    ) 

) 

id=195414208739840616 
username=rajivsharma033 
first_name=Rajiv 
last_name=Sharma 
bio= 
created_at= 
counts= 
image url is=https://s-media-cache- 
ak0.pinimg.com/avatars/rajivsharma033_1459712414_280.jpg 

Jetzt möchte ich, dass die Daten in MySQL einzufügen. wie es geht. Ich habe versucht:

$query = "INSERT INTO pinterest(pin_id) VALUES" .$value; 
$query_signup = mysqli_query($MySQLi_CON, $query); 

aber es zeigt Fehler:

Catchable fatal error: Object of class stdClass could not be converted to string in G:\XAMPP\htdocs\a\pinterestlogin\callback.php on line 38

Me-Hilfe.

+1

Sie sollten die Daten von der API als vom Benutzer übermittelte Daten behandeln und validieren und dann eine vorbereitete Anweisung verwenden. Keine Daten, die von Nutzern übermittelt oder von Drittanbietern stammen, sollten in die Nähe Ihrer Datenbank gelangen, ohne zuvor validiert zu werden und dann eine vorbereitete Anweisung ** verwendet zu haben – SpacePhoenix

Antwort

0

$value ist ein Objekt, wenn es das Element mit dem Index 'image' trifft, während Sie das decodierte pinrest Inhaltsarray iterieren. Ihre Mysql-Einfügung erwartet eine Zeichenfolge, kein Objekt.

Zuerst würde ich empfehlen, json_decode mit true aufzurufen, um alles in assoziative Arrays umzuwandeln, es sei denn, Sie müssen etwas im Körper als Objekt behandeln.

$array_data = json_decode($me, true);` 

dann überprüfen, wenn $value ein Objekt oder ein Array ist und vor Ihrem MySQL-Einsatz entweder:

  • Konvertieren der Bilder auf einen JSON-String-Objekt und speichert, dass $value = json_encode($value);
  • das Bildobjekt serialisiert $value = serialize($value);;