2015-12-16 49 views
-5

我有一個腳本,我打算自動複製一個數據庫表。我已經被告知複製,但我不知道如何使它正常工作,所以我決定改用這種方法。使用AJAX返回數據庫信息

爲了儘量減少安全風險,我們的現場網站將要求我們其他網站定期使用的數據庫表。請求腳本,我將其稱爲request.php,如下所示。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 
     <script type="text/javascript"> 
      //Idea is to use this to get response to provide table data 
      //What goes here? 
     </script> 
    </head> 

    <body> 

    <?php 
     //Define database handler 
     $dbWriter = new mysqli(database connection info); 

     if($mysqli->connect_errno){ 
      $errorMessage = sprintf("'%s'", $mysqli->connect_error); 
      echo $errorMessage; 
     } 
     else{ 
      $dbWriter->query("DELETE * FROM qb_inventory_status"); 

      //Processing of data goes here 
      foreach($returnedItems as $item){ 
       //Create query to insert individual records 
       $start = "INSERT INTO table(fieldA, fieldB...) VALUES ("; 
       $end = sprintf("'%s', %d, %d, %f, %f)", fieldA, fieldB...); 
       $start .= $end; 

       //Database handler uses $start to insert record 
       $dbWriter->query($start); 
      } 

      $dbWriter->close(); 
     } 
    ?> 

    </body> 
</html> 

響應腳本(response.php)如下。

<?php 
require_once($documentRoot."/classes/DBHandler.php"); 

$db_controller = new DBHandler(); 

$query = "SELECT * FROM table"; 
$result = $db_controller->select($query); 

//This array is what should be returned so request.php can handle it 
while($rowObject=mysql_fetch_object($rs)){   
    $rtnItems[]=$rowObject; 
} 

//Return $rtnItems here 

?> 

我知道如何從數據庫中檢索信息,並把它放在同一個文件內,適合處理的格式,但是當涉及到這樣的情況,我不知道怎麼打發回request.php。我該如何做這項工作?我需要能夠將返回的數組寫入數據庫。我以前從來沒有用Javascript完成後一個過程,所以我也想知道是否可以使用request.php的PHP部分訪問返回的數據庫。

+4

我真的不知道你在問什麼(儘管聽起來你想要一個介紹性的Ajax教程,這對於SO來說太廣泛了),但是如果你試圖通過使用Web瀏覽器作爲中間人來僞造數據庫複製通過HTTP複製所有內容...停止!那種方式就是瘋狂。 – Quentin

+0

如果您聲稱不安全,那麼請提供相關信息,而不是僅僅告訴我有更好的方法來解決這個問題,並解釋其中的一些方法。我沒有從人們那裏獲取任何東西,只是告訴我不要做某件事。 – user3521737

回答

1

你可以像這樣

要調用

$.ajax({url: "response.php", success: function(result){ 
     $("#div1").html(result); 
}}); 

檢查總是在jQuery的參考文獻做了Ajax的基本 http://api.jquery.com/jquery.ajax/

結果在這種情況下,你要的信息「粘貼」在你的前端。

使用數據處理程序作爲響應(以檢索信息),您不需要它在前端,除非您直接從它進行查詢。

+0

問題的一部分是我不需要在該頁面上顯示任何內容。它僅用於從其他站點的數據庫表中獲取數據,然後使用所述數據寫入其自己的副本。我還沒有看到任何指示將返回的數組傳遞到request.php自己的PHP腳本的可能性。這個想法是,這件事需要自己運行。我可以用任務調度程序來完成。 – user3521737

+0

你有request.php,你想在那裏做什麼? – jpganz18

+0

該文件調用response.php,它位於不同的服務器上,因此我必須用它的完整URL來引用它。 Response.php將數據庫表發送回request.php。 Request.php使用這個返回的數組來寫入它自己的數據庫表。 – user3521737