同じ問題を報告している他のトピックが見つかりましたが、それらのどれも私を助けませんでした。HTTP PostメソッドがAngularJS + PHP + MySQLで動作しない
私はAngularJSを学び、MySQLデータベースにデータを挿入しようとしました。私は本当にシンプルなHTMLファイルを持っています。ユーザーは名前と年齢を入力し、このデータをMySQLデータベースに入れるSubmitボタンをクリックすることができます。
学習目的にすぎないので、私はデータベースとテーブル "test"の名前を付けました。
私はサーバー言語としてPHPを使用しています。 私が持っている:
- 私は、MySQLデータベース
にデータを挿入するAngularJS HTTP POSTメソッドを使用しscript.jsファイル - - ビュー
ためのindex.htmlファイルconfig.phpを私がサーバーとの接続とデータベースへのデータの挿入を処理するファイル。
また、私のテーブルは、ID(ユニーク、自動インクリメント)、「名前」(テキスト)、「年齢」(int)の3つの列で構成されています。
各ファイルのコードはここにある:
index.htmlを
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>AngularJS-PHP-MySQL</title>
<!-- AngularJS CDN-->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<!-- script.js with implementation of Module and Controller -->
<script src="script.js" ></script>
</head>
<body>
<div ng-app="myApp" ng-controller="formCtrl">
<form id="myForm" action="" method="post">
<input type="text" name="name" id="name" value="" placeholder="Name" ng-model="nameModel">
<input type="text" name="age" id="age" value="" placeholder="Age" ng-model="ageModel">
<input type="button" name="sub" id="sub" value="Submit" ng-click="insertData()">
</form>
</div>
</body>
</html>
script.js
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope,$http){
$scope.insertData = function(){
$http.post("config.php",{'name': $scope.nameModel, 'age': $scope.ageModel})
.success(function(data, status, headers, config){
console.log("inserted Successfully");
});
}
});
config.phpの
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "";
$Table_name = "test";
mysql_connect($servername, $username, $password);
mysql_select_db($Table_name) or die(mysql_error());
$name = $_POST['name'];
$age = $_POST['age'];
mysql_query("INSERT INTO $Table_name('name', 'age') VALUES('$name', '$age')");
?>
POSTメソッドが成功したが、データをテーブルに挿入しなかったという警告が表示されます。私はなぜ、私は答えをオンラインで見つけられないのか分かりません。
**危険**:あなたは[削除されました](http:// php。2)[**古い**データベースAPI](http://stackoverflow.com/q/12859942/19068)を使用しています。 net/manual/en/mysql.php)をPHPから入手してください。 [現代的な代替品](http://php.net/manual/en/mysqlinfo.api.choosing.php)を選択する必要があります。あなたは** [SQLインジェクション攻撃](http://bobby-tables.com/)**に対して脆弱です**現代のAPIは、[防御]を容易にします(http://stackoverflow.com/questions/60174/最良の方法からSQLへのPHPインジェクション)をあなた自身から守ってください。 – Quentin
私はすぐにそれを変更します!警告ありがとう! –