【问题标题】:DB connectivity using angular, php, mysql使用 angular、php、mysql 的数据库连接
【发布时间】:2017-03-30 19:46:49
【问题描述】:

您好,我在做一个小项目时遇到了一些麻烦。这是我第一次使用 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, 
?>

【问题讨论】:

  • 为什么要解码 PHP 文件中的 JSON?
  • 我不知道我真的在按照教程进行操作。
  • 我认为你没有解析 JSON
  • 我删除了它,它没有任何区别。 :-( 我真的被困在这里了

标签: javascript php html mysql angularjs


【解决方案1】:

这是我第一次使用 mySQL 和 PHP

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

我不熟悉 Angular,但您的代码似乎依赖 Angular 来确定 PHP 脚本是否按预期运行。 Angular 无法根据脚本发送的内容做出决定,因此它必须根据脚本返回的 HTTP 状态(其中没有调试)做出决定。我希望您的 PHP 代码在运行插入之前崩溃并烧毁。

我建议你:

1) 使用 textare 构建测试平台,不使用 javascript 在您的 insert.php 脚本中触发请求

2) 修改您的 PHP 脚本,使其 - 捕获有关处理的更多信息 - 使用适当的error reporting 并确保您的错误记录正常工作 - 以可解析的格式(即 JSON)呈现它所采取的操作的(适当的)详细信息

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

4) 阅读SQL injection

【讨论】:

  • 所以我对SQL注入略知一二。这只是一个大学项目,所以我现在并不太担心。我试过只使用 html 而没有 javascript,但它仍然对我不起作用。我在 ubuntu 中使用可视代码进行编码,并使用 ng 命令生成组件并运行服务器等,因为这是我之前使用 angular 的唯一方法。我还在大学里学习这些东西,所以请和我一起学习;-) 任何人都可以链接到以前做过这件事的人吗?最好在 ubuntu 中使用 LAMP
  • “对我不起作用”不是有用的诊断信息。
  • 我这辈子都无法说出应用程序的故障所在!如果我知道你不认为我会用谷歌搜索错误吗?或张贴在这里寻求帮助?除了 index.html 中给出的 on 之外,没有错误消息,即“alert("Sorry!数据无法插入!");"如果我删除这行代码并运行没有错误,没有插入数据库什么都没有!那么,当我没有收到任何消息时,如何给你一个有用的诊断消息呢?
  • 我想要的只是能够连接到这个数据库。我之前只在特定环境中使用过 Angular(在未运行 LAMP 的 ubuntu 虚拟机上),这要求我与数据库没有连接。现在我需要它使用 PHP 将它连接到 MySQL 数据库,这两种方法我以前从未使用过,我什至找不到一种简单的方法来测试与数据库的连接或任何东西?据我所见(如您所说),该应用程序没有到达插入,我怀疑它甚至根本运行 PHP 代码。
  • 您在上面的代码中调用了 mysql_ 函数三个调用,并且从不检查返回值而不是轮询 mysql_error()。我建议你也验证你的错误报告——这意味着创建一个你知道会抛出错误的 php 脚本,并确保它被捕获到你期望找到它的位置。 “我什至怀疑它是否在运行 PHP 代码”——这个问题的答案已经在您的网络服务器日志中。
猜你喜欢
  • 2010-10-18
  • 1970-01-01
  • 2012-05-28
  • 1970-01-01
  • 2014-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多