我有一個腳本,我打算自動複製一個數據庫表。我已經被告知複製,但我不知道如何使它正常工作,所以我決定改用這種方法。使用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部分訪問返回的數據庫。
我真的不知道你在問什麼(儘管聽起來你想要一個介紹性的Ajax教程,這對於SO來說太廣泛了),但是如果你試圖通過使用Web瀏覽器作爲中間人來僞造數據庫複製通過HTTP複製所有內容...停止!那種方式就是瘋狂。 – Quentin
如果您聲稱不安全,那麼請提供相關信息,而不是僅僅告訴我有更好的方法來解決這個問題,並解釋其中的一些方法。我沒有從人們那裏獲取任何東西,只是告訴我不要做某件事。 – user3521737