使用angular,php,mysql进行数据库连接

时间:2017-03-30 10:46:02

标签: javascript php html mysql angularjs

嗨,我在一个小项目上遇到了一些麻烦。这是我第一次使用mySQL和PHP,所以我现在只想尝试连接。我已经按照一些教程而无法连接到数据库,我收到了“抱歉!数据无法插入!”来自index.html底部的php脚本的错误。

我在root用户的数据库上也有一个密码,但即使我在php文件中输入它仍然无法正常工作。

任何帮助都非常感谢大家。

的index.html:

 <!DOCTYPE html>
<html>
  <head>
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"></link>
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
  </head>
  <body>
      <div class= "container" style = "width:500px">
      <div ng-app="myapp" ng-controller="usercontroller">
            <label>Email</label>
            <input type ="text" name="email" ng-model="email" class="form-control"/>
             <br />
             <label>Password</label>
            <input type ="text" name="password" ng-model="password" class="form-control"/>
            <br /> 
            <input type="submit" name="btnInsert" ng-click="insertData()" value="ADD"/>
      </div>
      </div>



 <script>
   var app = angular.module('myapp',[]);

   app.controller('usercontroller', function($scope, $http){
      $scope.insertData = function(){
        $http.post(
          "insert.php",{
            'email':$scope.email,
            'password':$scope.password
          }).then(function(response){
            alert("Data inserted Successfully! YIPEEEE!!!");
            console.log("Data inserted Successfully");
        },function(error){
          alert("Sorry! Data Couldnt be inserted!");
          console.error(error);
        });
      }
   });
  </script>
  </body>
 </html>

和我的insert.php:

<?php
//insert.php


$data = json_decode(file_get_contents("php://input"));


    $email =  $data->email;
    $password = $data->password;

    mysql_connect("localhost","root","");
    mysql_select_db("test");

    mysql_query ("INSERT INTO 'test_user'('email', 'password') VALUES ('".$email."','".$password."')") or die(mysql_error());

    echo $email. " " .$password;

/*
    if(mysqli_query($connect, $query)){
        echo "User inserted...";
    }
    else{
        echo "User not inserted...";
    }
*/

#mysqli_real_escape_string($connect,
#mysqli_real_escape_string($connect, 
?>

1 个答案:

答案 0 :(得分:0)

  

这是我第一次使用mySQL和PHP

但您似乎使用的是旧版本的PHP(不推荐使用mysql_扩展名)。

我不熟悉Angular,但看起来您的代码依赖于Angular来确定PHP脚本是否按预期运行。 Angular不能根据脚本发送的内容做出决定,因此必须根据脚本返回的HTTP状态做出决定(其中没有调试)。我希望你的PHP代码在运行插入之前崩溃和刻录。

我建议你:

1)使用textare和NO javascript构建测试装备,以在insert.php脚本中触发请求

2)修改你的PHP脚本    - 捕获有关处理的更多信息    - 使用适当的error reporting并确保您的错误记录正常    - 以可解析的格式(即JSON)

呈现所采取行动的(适当的)细节

3)读取您的日志文件 - 对于PHP和MySQL(您可能希望在更改/验证日志记录之前执行此操作)

4)阅读SQL injection