2017-11-26 1 views
0

AngularJSPHP으로 간단한 연락처 양식을 작성하여 이메일과 Google - big query database으로 보내려고했지만 성공하지 못했습니다.문의 양식 데이터베이스와 이메일, 큰 쿼리 및 angularjs로 보내기

그리고에 대한 예는 어느 곳이없는 것처럼도 보인다 ... 어떤 도움을받을 사랑 ...

내가 MySQL와 함께 할 노력하고 무엇을 보여주는를 넣어 코드, 내가 필요 bigquery으로 조정하십시오.

<body ng-app="myapp" ng-controller="formcontroller"> 
    <div class="contact-us-page"> 
     <div class="container"> 
      <div class="row"> 
       <div class="col-sm-4 col-xs-12"> 
        <h1>CONTACT US</h1> 
        <form name="userForm" novalidate ng-submit="insertData()"> 
         <label class="text-success" ng-show="successInsert">{{successInsert}}</label> 
         <div> 
          <label for="username" >Name</label> 
          <input type="text" name="userName" ng-model="insert.user_name" class="form-control" ng-class="{ 'has-error' : userForm.userName.$invalid && userForm.$submitted && userForm.userName.$pristine }" required> 
          <!--<span class="text-danger" ng-show="errorUsername">{{errorUsername}}</span>--> 
         </div> 
         <div> 
          <label for="companyName">Company name</label> 
          <input type="text" name="companyName" ng-model="insert.company_name" class="form-control" ng-class="{ 'has-error' : userForm.companyName.$invalid && userForm.$submitted && userForm.companyName.$pristine }" required> 
          <!--<span class="text-danger" ng-show="errorCompanyname">{{errorCompanyname}}</span>--> 
         </div> 
         <div> 
          <label for="email">Email</label> 
          <input type="email" name="email" ng-model="insert.email" class="form-control" ng-class="{ 'has-error' : userForm.email.$invalid && userForm.$submitted && userForm.email.$pristine }" required> 
          <!--<span class="text-danger" ng-show="errorEmail">{{errorEmail}}</span>--> 
         </div> 
         <div> 
          <label for="phone">Phone</label> 
          <input type="text" name="phone" ng-model="insert.phone" class="form-control" ng-class="{ 'has-error' : userForm.phone.$invalid && userForm.$submitted && userForm.phone.$pristine }" required> 
          <!--<span class="text-danger" ng-show="errorPhone">{{errorPhone}}</span>--> 
         </div> 
         <!--<div> 
          <input type="file" name="upload_cv" value="Upload CV" class="upload-cv"> 
         </div> --> 
         <input type="submit" name="insert" class="button-style" value="Send"> 
        </form> 
       </div> 
      </div> 
     </div> 
    </div> 
    <script src="app.js"></script>  
</body> 

app.js는 :

var application = angular.module("myapp", []); 
application.controller("formcontroller", function($scope, $http){ 
$scope.insert = {}; 
$scope.insertData = function(){ 
    $http({ 
    method:"POST", 
    url:"insert.php", 
    data:$scope.insert, 
    }).success(function(data){ 
    if(data.error) 
    { 
    $scope.errorUsername = data.error.user_name; 
    $scope.errorCompanyname = data.error.company_name; 
    $scope.errorEmail = data.error.email; 
    $scope.errorPhone = data.error.phone; 
    $scope.successInsert = null; 
    } 
    else 
    { 
    $scope.insert = null; 
    $scope.errorUsername = null; 
    $scope.errorCompanyname = null; 
    $scope.errorEmail = null; 
    $scope.errorPhone = null; 
    $scope.successInsert = data.message; 
    } 
    }); 
} 
}); 

insert.php : bigquery- 작동하지 않습니다와

<?php 
//insert.php 
$connect = mysqli_connect("localhost", "root", "", "resonai"); 
$form_data = json_decode(file_get_contents("php://input")); 
$data = array(); 
$error = array(); 

if(empty($form_data->user_name)) 
{ 
$error["user_name"] = "User Name is required"; 
} 

if(empty($form_data->company_name)) 
{ 
$error["company_name"] = "Company Name is required"; 
} 

if(empty($form_data->email)) 
{ 
$error["email"] = "Email Name is required"; 
} 

if(empty($form_data->phone)) 
{ 
$error["phone"] = "Phone Name is required"; 
} 

if(!empty($error)) 
{ 
$data["error"] = $error; 
} 
else 
{ 
$user_name = mysqli_real_escape_string($connect, $form_data->user_name); 
$company_name = mysqli_real_escape_string($connect, $form_data->company_name); 
$email = mysqli_real_escape_string($connect, $form_data->email); 
$phone = mysqli_real_escape_string($connect, $form_data->phone); 
$query = " 
    INSERT INTO contactus_page(user_name, company_name, email, phone) VALUES ('$user_name', '$company_name', '$email', '$phone') 
"; 
if(mysqli_query($connect, $query)) 
{ 
    $data["message"] = "Thank you. We will contact you soon!"; 
} 
} 

echo json_encode($data); 

?> 

insert.php ...

<?php 
//insert.php 
composer require google/cloud-bigquery; 

require __DIR__ . '/vendor/autoload.php'; 

use Google\Cloud\BigQuery\BigQueryClient; 

$projectId = 'burnished-data-183409'; 

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

if(empty($form_data->user_name)) 
{ 
$error["user_name"] = "User Name is required"; 
} 

if(empty($form_data->company_name)) 
{ 
$error["company_name"] = "Company Name is required"; 
} 

if(empty($form_data->email)) 
{ 
$error["email"] = "Email Name is required"; 
} 

if(empty($form_data->phone)) 
{ 
$error["phone"] = "Phone Name is required"; 
} 

if(!empty($error)) 
{ 
$data["error"] = $error; 
} 
else 
{ 
# [START build_service] 
$bigquery = new BigQueryClient([ 
'projectId' => $projectId 
]); 
# [END build_service] 
# [START run_query] 
$user_name = $form_data->user_name; 
$company_name = $form_data->company_name; 
$email = $form_data->email; 
$phone = $form_data->phone; 

$query = 'insert into test1.cf (user_name, company_name, email, phone) values ('$user_name', '$company_name', '$email', '$phone')'; 
$options = ['useLegacySql' => true]; 
$queryResults = $bigQuery->runQuery($query, $options); 
# [END run_query] 

# [START print_results] 
if ($queryResults->isComplete()) { 
    $data["message"] = "Thank you. We will contact you soon!"; 
    /*$i = 0; 
    $rows = $queryResults->rows(); 
    foreach ($rows as $row) { 
     printf('--- Row %s ---' . PHP_EOL, ++$i); 
     foreach ($row as $column => $value) { 
      printf('%s: %s' . PHP_EOL, $column, $value); 
     } 
    } 
    printf('Found %s row(s)' . PHP_EOL, $i);*/ 
} else { 
    throw new Exception('The query failed to complete'); 
} 
# [END print_results] 
# [END all] 
} 

echo json_encode($data); 

?> 
+0

직면 한 정확한 문제는 무엇입니까? – imox

+0

Google - big query https://cloud.google.com/bigquery/create-simple-app-api에 따라 "insert.php"파일을 변경했으나 작동하지 않습니다. –

답변

0

난 당신을 생각 현재 존재하는 쿼리를 실행하려고합니다. BigQuery에서 MySQL을 사용합니다. 이 경우에는 BigQuery PHP 클라이언트 라이브러리를 사용해야합니다. 설치 및 사용에 대한 자세한 내용은 여기를 참조하십시오 https://cloud.google.com/bigquery/create-simple-app-api [PHP 탭 클릭]

관련 문제