2013-12-10 27 views
0

我的foreach循环不适用于mysql中的update语句。不知道我做错了什么。这里是我的PHP片段。PHP和MYSQL:更新不适用于Foreach循环

 foreach ($request['playlist_information'] as $playlist) { 
     $playlistResult = "UPDATE video_playlists SET channel_id='".$playlist['channel_id']."', playlist_id='".$playlist['id']."', playlist_title='".$playlist['title']."', playlist_status='".$playlist['status']."', playlist_description='".$playlist['description']."', playlist_created='".$playlist['date_created']."'"; 
     $mysqli->query($playlistResult); 
     var_dump($playlist['title']); 
    } 

和我的要求,从我的JavaScript来是这样的:

 var param = { 
    "channel_id": channelId, 
    "video_id": videoId, 
    "views": $scope.stats[0]['views'], 
    "likes": $scope.stats[0]['likes'], 
    "dislikes": $scope.stats[0]['dislikes'], 
    "favorites": $scope.stats[0]['favorites'], 
    "comments": $scope.stats[0]['comments'], 
    "duration": $scope.stats[0]['duration'], 
    "dimension": $scope.stats[0]['dimension'], 
    "definition": $scope.stats[0]['definition'], 
    "caption": $scope.stats[0]['caption'], 
    "licensed_content": licensedContent, 
    "upload_status": $scope.stats[0]['uploadStatus'], 
    "privacy_status": $scope.stats[0]['privacyStatus'], 
    "license": $scope.stats[0]['license'], 
    "embeddable": embeddable, 
    "public_stats_viewable": publicStatsViewable, 
    "video_title": $scope.meta[0]['title'], 
    "video_status": $scope.stats[0]['privacyStatus'], 
    "video_description": $scope.meta[0]['description'], 
    "video_tags": $scope.meta[0]['tags'], 
    "playlist_information": {} 
} 



for (var i = 0; i < $scope.playlists.length; i++) { 

    param["playlist_information"][i] = { 
        "channel_id": channelId, 
        "id": $scope.playlists[i]['id'], 
        "title": $scope.playlists[i]['title'], 
        "description": $scope.playlists[i]['description'], 
        "status": $scope.playlists[i]['status'], 
        "date_created": $scope.playlists[i]['datePublished'] 
    } 

}; 

INSERT工作正常,我可以不用在PHP的一部分foreach循环更新的罚款。我似乎无法找出问题所在。任何帮助表示赞赏。谢谢!

+0

'的print_r($ _ POST)'在php文件中看到柱结构是什么样子.. – superphonic

+0

什么是错误,使用一些调试,让我们知道确切的问题 – Noor

+0

print_r($ _ POST)显示和空阵列。顺便说一句我正在使用angularjs和创建一个YouTube的API应用程序。 – Growlithe

回答

0

您有问题,在您的查询报价:“。$播放列表 “

$ playlistResult = 'UPDATE video_playlists SET CHANNEL_ID = '[” CHANNEL_ID] “ ',PLAYLIST_ID ='” $播放列表[。 '',playlist_title ='“。$ playlist ['title']。'',playlist_status ='”。$ playlist ['status']。'',playlist_description ='“。$ playlist ['description '','playlist_created ='“。$ playlist ['date_created']。”'“;

你可能会得到语法错误: 检查粗体文字:“‘$播放列表。[‘频道了’。’”

$playlistResult = "UPDATE video_playlists SET channel_id=\'".$playlist['channel_id']."\', playlist_id=\'".$playlist['id']."\', playlist_title=\'".$playlist['title']."\', playlist_status=\'".$playlist['status']."\', playlist_description=\'".$playlist['description']."\', playlist_created=\'".$playlist['date_created']."\'"; 

我希望这可以帮助,如果需要检查您的更新状态为好。

+0

是的,它确实说,当我直接在数据库中运行它时有语法错误, – Growlithe

+0

**您有错误你的SQL语法;检查与您的MySQL服务器版本相对应的手册,以便在'$ playlistResult = "'附近使用正确的语法UPDATE video_playlists SET'channel_id' ='"。$ playlist ['channel'at line 1 **我不明白,其他更新与这种语法工作 – Growlithe

0

首先,请重新检查代码,它应该是$ _REQUEST []而不是$请求

foreach ($_REQUEST['playlist_information'] as $playlist) {} 
+0

小写工作正常 – Growlithe