簡體   English   中英

無法在PHP中將JSON對象插入MySQL表

[英]Trouble inserting JSON object into MySQL table in PHP

我正在我的PHP代碼中調用Rest API,該API返回JSON。 我想將其中的某些部分保存到我的數據庫中,但是由於某種原因,什么也沒有存儲。 JSON如下所示:

{
"url": "http://myURL.com/fujifilm-mx1700.jpg",
"mimeType": "image/jpeg",
"width": 640,
"height": 480,
"byteSize": 100227,
"exif": {"YResolution": "72/1", "Tag0xa217": "2", "ResolutionUnit": "Inch", "Compression": "6", "Copyright": "", "Tag0xa300": "[ 3 ]", "Make": "FUJIFILM", "Flash": "no", "DateTime": "2000:09:02 14:30:10", "MaxApertureValue": "3.3", "YCbCrPositioning": "2", "XResolution": "72/1", "JPEGInterchangeFormatLength": "4354", "ExposureBiasValue": "0.0", "ExposureProgram": "Program Normal", "ShutterSpeedValue": "1/169", "ColorSpace": "1", "Tag0xa20e": "1087/1", "Tag0xa20f": "1087/1", "ExifImageWidth": "640", "DateTimeDigitized": "2000:09:02 14:30:10", "DateTimeOriginal": "2000:09:02 14:30:10", "BrightnessValue": "76/10", "CompressedBitsPerPixel": "2/1", "Interoperability_IFD_Pointer": "708", "FNumber": "7", "ApertureValue": "5.6", "Tag0xa210": "3", "FocalLength": "9.9", "Tag0xa000": "[ 48,49,48,48 ]", "ComponentsConfiguration": "[ 1,2,3,0 ]", "ExifImageHeight": "480", "ISOSpeedRatings": "125", "Model": "MX-1700ZOOM", "Software": "Digital Camera MX-1700ZOOM Ver1.00", "Orientation": "1", "Tag0xa301": "[ 1 ]", "JPEGInterchangeFormat": "856", "MeteringMode": "5", "ExifVersion": "[ 48,50,49,48 ]"}
}

這是我的PHP

$exif = file_get_contents('http://img2json.appspot.com/go/?url=http://myURL.com/$fileName');
$response = json_decode($response, true);

foreach($response['exif'] as $item) {

$iso = $item['ISOSpeedRatings'];
$shut = $item['ShutterSpeedValue'];

$sql="INSERT INTO EXIF (uniqueID, ISO, shutterSpeed)
VALUES('$id','$iso','$shut')";  

    if (!mysql_query($sql,$link)) {
    die('Error: ' . mysql_error());
    }
}

我想將ISOSpeedRatings和ShutterSpeedValue存儲在我的數據庫中,但是它們一直空着。

我懷疑它無法正常工作,因為我沒有從JSON正確檢索想要的數據,但是我不太確定該怎么做。 另外,我認為值得一提的是,我正在使用AppFog,因此必須確保我的.htaccess中有php_value allow_url_fopen 1 ,因為我無法訪問php.ini文件。 任何幫助,將不勝感激。

PHP字符串插值(使變量名稱替換為字符串中的值的事情)(就我所知)僅在雙引號字符串中有效。 如果我沒看錯,但是我的大腦在深夜仍然可以正常工作,那么您的問題就在這里:

    $exif = file_get_contents('http://img2json.appspot.com/go/?url=http://myURL.com/$fileName');

因為您實際上是在請求文件'$filename ',而不是該變量中的實際內容。 用雙引號替換單引號,然后查看是否可以解決。

更新:下一個問題:

    $response = json_decode($response, true);

您需要解碼$exif變量。

嘗試使用urlencode()准備您的urlstring。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM