AngularJS SQL
ЁЯУМ AngularJS рдФрд░ SQL рдХрд╛ Direct Connection?
AngularJS рдПрдХ frontend framework рд╣реИ, рдпрд╛рдиреА рдпрд╣ рд╕рд┐рд░реНрдл рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ HTML, CSS, JavaScript рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЬрдмрдХрд┐ SQL рдПрдХ database language рд╣реИ рдЬреЛ server рдкрд░ рдЪрд▓рддреА рд╣реИ тАФ рдЬреИрд╕реЗ MySQL, SQLite, PostgreSQL рдЖрджрд┐ред
ЁЯФ┤ AngularJS рд╕реАрдзреЗ SQL рд╕реЗ connect рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ AngularJS рдХреЗ рдкрд╛рд╕ server-level access рдирд╣реАрдВ рд╣реЛрддрд╛ред
тЬЕ рддреЛ AngularJS рдФрд░ SQL рд╕рд╛рде рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ?
AngularJS SQL рд╕реЗ data рдХреЛ fetch рдпрд╛ send indirectly рдХрд░рддрд╛ рд╣реИ тАФ рдХрд┐рд╕реА backend (server-side) API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред
ЁЯФД рдкреВрд░рд╛ Flow рдЗрд╕ рддрд░рд╣ рд╣реЛрддрд╛ рд╣реИ:
AngularJS (Frontend)
тЖУ
$http (API Call)
тЖУ
Server-side Script (PHP, Node.js, Python, etc.)
тЖУ
SQL Query (MySQL, etc.)
тЖУ
Database рд╕реЗ Data рдЖрддрд╛ рд╣реИ
тЖУ
Server Response тЖТ AngularJS рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИ
тЬЕ Real-World Example Flow:
ЁЯзй AngularJS + PHP + MySQL
Step 1: AngularJS Code (GET request)
$http.get("get-users.php").then(function(response) {
$scope.users = response.data;
});
Step 2: PHP Code (get-users.php
)
<?php
$conn = new mysqli("localhost", "root", "", "mydb");
$result = $conn->query("SELECT * FROM users");
$data = [];
while($row = $result->fetch_assoc()) {
$data[] = $row;
}
echo json_encode($data);
?>
рдЕрдм AngularJS рдХреЛ JSON format рдореЗрдВ data рдорд┐рд▓реЗрдЧрд╛ рдЬрд┐рд╕реЗ рд╡реЛ table рдпрд╛ list рдореЗрдВ рджрд┐рдЦрд╛ рд╕рдХрддрд╛ рд╣реИред
тЬЕ Example: Table рдореЗрдВ MySQL Data рджрд┐рдЦрд╛рдирд╛
<div ng-app="myApp" ng-controller="userCtrl">
<table border="1">
<tr><th>ID</th><th>Name</th><th>Email</th></tr>
<tr ng-repeat="user in users">
<td>{{ user.id }}</td>
<td>{{ user.name }}</td>
<td>{{ user.email }}</td>
</tr>
</table>
</div>
<script>
var app = angular.module("myApp", []);
app.controller("userCtrl", function($scope, $http) {
$http.get("get-users.php").then(function(response) {
$scope.users = response.data;
});
});
</script>
ЁЯУе Data Insert (POST Request)
AngularJS Side:
$http.post("insert.php", {
name: $scope.name,
email: $scope.email
}).then(function(response) {
$scope.message = response.data;
});
PHP Side (insert.php
):
<?php
$data = json_decode(file_get_contents("php://input"));
$name = $data->name;
$email = $data->email;
$conn = new mysqli("localhost", "root", "", "mydb");
$conn->query("INSERT INTO users (name, email) VALUES ('$name', '$email')");
echo "User inserted successfully!";
?>
ЁЯФР Best Practices:
- тЬЕ рд╣рдореЗрд╢рд╛ AngularJS рд╕реЗ data рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП API use рдХрд░реЗрдВ
- тЬЕ Backend рдкрд░ SQL queries рд╕реЗ data fetch/insert рдХрд░реЗрдВ
- тЬЕ JSON format рдореЗрдВ data рднреЗрдЬреЗрдВ рдФрд░ рдкрд╛рдПрдВ
- тЭМ AngularJS рд╕реЗ рд╕реАрдзреЗ database рдХреЛ connect рдирд╛ рдХрд░реЗрдВ (Security Risk!)
ЁЯза рдЕрднреНрдпрд╛рд╕ рдкреНрд░рд╢реНрди (Exercise)
- рдХреНрдпрд╛ AngularJS SQL database рд╕реЗ directly connect рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
- AngularJS рдХреЛ SQL рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди-рдХреМрди рд╕реЗ layers рдЬрд╝рд░реВрд░реА рд╣реИрдВ?
GET
рдФрд░POST
API methods рдореЗрдВ рдХреНрдпрд╛ рдлрд░реНрдХ рд╣реИ?
тЬЕ рдЖрдкрдиреЗ рдХреНрдпрд╛ рд╕реАрдЦрд╛?
- AngularJS рдФрд░ SQL рдХрд╛ рд╕реАрдзрд╛ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИ
- AngularJS рдХреЛ SQL рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП backend (PHP, Node.js) рдЪрд╛рд╣рд┐рдП
- AngularJS рдореЗрдВ
$http
service рд╕реЗ API call рдХреА рдЬрд╛рддреА рд╣реИ - Server-side script SQL рд╕реЗ data рд▓рд╛рдХрд░ AngularJS рдХреЛ JSON рдореЗрдВ рджреЗрддреА рд╣реИ
- AngularJS Frontend + SQL Backend рдорд┐рд▓рдХрд░ powerful apps рдмрдирддреЗ рд╣реИрдВ
ЁЯОп рдЕрдм рдЖрдк рд╕рдордЭ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ AngularJS frontend hero рд╣реИ, рдФрд░ SQL backend brain тАФ рджреЛрдиреЛрдВ рдорд┐рд▓рдХрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдПрдХ real-world dynamic app!