POSTリクエストからJSONペイロードを受け取ってphpMyAdminのデータベースに挿入するPHPハンドラを作成しました。なぜこれが動作していないのか分かりません。jsonデータがmySQLデータベースにINSERTされないのはなぜですか?
JSON:
payload = {
"version":"1.0",
"event":"video_recorded",
"data":{
"videoName":"vs1457013120534_862",
"audioCodec":"NellyMoser ASAO",
"videoCodec":"H.264",
"type":"FLV",
"orientation":"landscape",
"id":"0",
"dateTime":"2016-03-03 15:51:44",
"timeZone":"Europe/Bucharest",
"payload":"111.111.111.11",
"httpReferer":"http://site_from_where_video_was_recorded.com"
}
}
私はオンラインチュートリアルから得たPHPコード。
<?php
/* db variables */
$dbhost = 'localhost';
$dbname = 'name_db';
$dbuser = 'user_db';
$dbpass = 'pass_db';
/* grab the json */
$data = $_POST['payload'];
/* put json into php associative array */
$data_array = json_decode($data);
/* store in PHP variables */
$ip_address = $data_array['data']['payload'];
$vid_name = $data_array['data']['videoName'];
$date_time = $data_array['data']['dateTime'];
$time_zone = $data_array['data']['timeZone'];
/* connect to mysql db */
$con = mysql_connect($dbuser, $dbpass, $dbhost) or die('Could not connect: ' . mysql_error());
/* select the specific db */
mysql_select_db($dbname, $con);
/* insert the values into the db */
$sql = "INSERT INTO ip_and_videos(IpAddress, VideoName, DateTime, Timezone) VALUES('$ip_address','$vid_name','$date_time','$time_zone')";
if(!mysql_query($sql,$con))
{
die('Error : ' . mysql_error());
}
?>
私はintに設定し、主キーを持っているし、自動インクリメント上でそれを持っている:チュートリアルでは、2017年から私はすべてが最新のものであるが、まだそれはまだ動作しないと仮定していました。私が正しく理解すれば、その列には何も挿入する必要はありません。そのたびに番号を割り当てるからです。あるいは、他の変数をINSERTするときに渡す必要がありますか?あなたは同じ問題があったが、これは私のために動作しない場合はわからない
停止を支援しますmysqlの拡張機能を使用します。あなたのコードはSQLインジェクション用にオープンされています。 – Bhavin
大丈夫私はそれを調べます。それはなぜそれが動作していない任意のアイデア? –
いいえ。主キーは自動インクリメントであるため、渡す必要はありません。あなたの質問をあなたのエラーで更新してください。そしてあなたのコードの開始時にerror_reporting(E_ALL)を開始してください。他のエラーが発生した場合は、それを把握することもできます。 – Bhavin