データベースにデータを追加しようとしていますが、PDOの準備/実行ステートメントでこれを正しく行う方法がわかりません。私のHTMLファイルにAngularJS、PHP、およびMySQL:PDOを使用して変数を正しく挿入する方法は?
、私は、このボタンのコールを持っている:
私のコントローラに行く<form name="addRecord" method="POST">
<button data-ng-click="addNewRecord()" name="add">Add Record</button>
</form>
:で
<?php
if(isset($_POST['add']))
{
try {
$db = new PDO('mysql:host=localhost;dbname=myDBNAME;charset=utf8',
'myDBUSER',
'myDBPASS');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}
catch(PDOException $ex) {
echo "did not connect...";
}
$sth = $db->prepare("INSERT INTO my_db_table
(tcode, created_on, email, move_in_date, move_in_hour, move_in_minute, version)
VALUES (?, ?, ?, ?, ?, ?, ?)");
$data = json_decode(file_get_contents("php://input"));
$sth->bindValue(1, $data->id);
$sth->bindValue(2, $data->createdon);
$sth->bindValue(3, $data->email);
$sth->bindValue(4, $data->date);
$sth->bindValue(5, $data->hour);
$sth->bindValue(6, $data->minute);
$sth->bindValue(7, $data->version);
$success = $sth->execute();
Print $success;
}
?>
:私のPHPファイルを呼び出す
app.controller('DateHoursController', function ($scope, $http) {
var date = 456;
var hours = 5;
var minutes = 45;
var cid = 'jk7814982';
var em = '[email protected]';
var versionN = 0;
$scope.addNewRecord = function() {
var today = Date.now();
$http.post("server/insert.php", { 'id': cid, 'createdon': today, 'email': em, 'date': date, 'hour': hours, 'minute': minutes, 'version': versionN })
.success(function (data, status, headers, config) {
console.log("inserted Successfully");
});
};
});
コンソールで、「挿入が成功しました」と表示され、ブラウザのネットワークをチェックして、「insert.php」をクリックするとステータス200が表示されますが、空の応答。
ここで何か忘れていますか?私はこれが失敗する原因を理解していません。
なぜあなたは 'mysql_real_escape_string'をPDOで使用していますか? –
準備された文を使用します。 – Sirko
この回答のため@ don'tpanic:@stackoverflow.com/questions/20004325/inserting-data-from-front-end-to-mysql-db-in-angularjs – NoReceipt4Panda