AngularJS не может вставить данные в phpMyAdmin (MySQL)

#php #mysql #angularjs #phpmyadmin

#php #mysql #angularjs #phpmyadmin

Вопрос:

Я новичок в AngularJS, но, похоже, я не могу вставить какие-либо данные в свою базу данных. Я выполнил несколько инструкций, но, похоже, это не работает. Когда я нажимаю кнопку отправки, ничего не происходит, и в мою базу данных не вставлены данные. Пожалуйста, помогите.

Большое спасибо, ребята.

view2.html

     <div ng-app="register" >
      <form name="form1" ng-controller="registerInsert" align="center">
        <ul>
                    <li class="err" ng-repeat="error in errors"> {{ error}} </li>
                </ul>
                <ul>
                    <li class="info" ng-repeat="msg in msgs"> {{ msg}} </li>
                </ul>
        <div class="form-group col-md-6 col-xs-12 col-md-offset-3" >
        <label for="InputName" ><h1>Please fill your informations</h1></label>
          <input type="text" class="form-control" ng-model="fName"  placeholder="Firstname" >
        </div>
        <div class="form-group col-md-6 col-xs-12 col-md-offset-3">
          <input type="text" class="form-control" ng-model="lName"  placeholder="Lastname" >
        </div>
        <div class="form-group col-md-6 col-xs-12 col-md-offset-3">
          <input type="text" class="form-control"  ng-model="eMail"  placeholder="E-Mail" >
        </div>
        <div class="form-group col-md-6 col-xs-12 col-md-offset-3">
          <input type="text" class="form-control" ng-model="userName"  placeholder="Username" >
        </div><div class="form-group col-md-6 col-xs-12 col-md-offset-3">
          <input type="password" class="form-control" ng-model="passWord"  placeholder="Password" >
        </div>
        <div class="form-group col-md-6 col-xs-12 col-md-offset-3">
          <input type="text" class="form-control" ng-model="tel"  placeholder="Telephone Number" >
        </div>

        <div class="form-group col-md-6 col-xs-12 col-md-offset-3">
        <button  ng-click='SignUp();' class="btn btn-default" >Submit</button>
</div>
      </form>
</div>        

      <script type="text/javascript">
            function registerInsert($scope, $http) {
                $scope.errors = [];
                $scope.msgs = [];

                $scope.SignUp = function() {

                    $scope.errors.splice(0, $scope.errors.length); // remove all error messages
                    $scope.msgs.splice(0, $scope.msgs.length);

                    $http.post('save_register.php', {'fName':$scope.fName,'lName':$scope.lName,'eMail':$scope.eMail,
  'userName':$scope.userName,'passWord':$scope.passWord,'tel':$scope.tel}
                    ).success(function(data, status, headers, config) {
                        if (data.msg != '')
                        {
                            $scope.msgs.push(data.msg);
                        }
                        else
                        {
                            $scope.errors.push(data.error);
                        }
                    }).error(function(data, status) { // called asynchronously if an error occurs
// or server returns response with an error status.
                        $scope.errors.push(status);
                    });
                }
            }
        </script>


  save_register.php

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

$userName = mysqli_real_escape_string($con,$data->userName);
$passWord = mysqli_real_escape_string($con,$data->passWord);
$fName = mysqli_real_escape_string($con,$data->fName);
$lName = mysqli_real_escape_string($con,$data->lName);
$eMail = mysqli_real_escape_string($con,$data->eMail);
 $tel = mysqli_real_escape_string($con,$data->tel);
$accountStat = mysqli_real_escape_string($con,$data->accountStat);
$verifyCode = mysqli_real_escape_string($con,$data->verifyCode );
$verifyStat = mysqli_real_escape_string($con,$data->verifyStat);

$con = mysql_connect('localhost', 'root', '');
mysql_select_db('MiddleWork', $con);

$qry_em = 'select count(*) as cnt from UserTest where Username ="' . $userName . '"';
$qry_res = mysql_query($qry_em);
$res = mysql_fetch_assoc($qry_res);

if ($res['cnt'] == 0) {
    $qry = 'INSERT INTO UserTest (Username,Password,Firstname,Lastname,Email,Tel) 
    values ("' . $userName . '","' . $passWord . '","' . $fName . '""' . $lName . '","' . $eMail . '","' . $tel . '")';
    $qry_res = mysql_query($qry);
    if ($qry_res) {
        $arr = array('msg' => "User Created Successfully!!!", 'error' => '');
        $jsn = json_encode($arr);
        print_r($jsn);
    } else {
        $arr = array('msg' => "", 'error' => 'Error In inserting record');
        $jsn = json_encode($arr);
        print_r($jsn);
    }
} else {
    $arr = array('msg' => "", 'error' => 'User Already exists with same email');
    $jsn = json_encode($arr);
    print_r($jsn);
}
  

Ответ №1:

Включите отчет об ошибках или посмотрите журнал сервера. Очевидно, что в INSERT операторе между fName и отсутствует запятая lName .

Комментарии:

1. о, спасибо, я не видел эту ошибку с запятой, я вставил ее, но все равно ничего не произошло. В моем терминале кажется, что веб-сайт не может вызвать php-файл. Я сделал что-то не так?

2. Взгляните на журнал или добавьте это в свой PHP: ini_set('display_errors', 'On'); error_reporting(-1);

3. Я получил сообщение angular.js: 13920 Ошибка: [ng: areq] Аргумент ‘registerInsert’ не является функцией, не определен errors.angularjs.org/1.5.8/ng /… на локальном хостинге:8000/bower_components/angular/angular.js:68:12 в assertArg

4. Тогда это проблема JS. Вероятно, вы вызываете registerInsert() куда-то, что не определено (пока).

5. не определено в <script> tag ? сэр? я так сожалею о глупом вопросе, но он темный во всех отношениях: (