【发布时间】:2015-12-16 20:54:15
【问题描述】:
我有一个脚本,我打算自动复制一个数据库表。我已被告知有关复制,但我不知道如何使其正常工作,因此我决定改用此方法。
为了尽量减少安全风险,我们的实时站点将请求我们其他站点经常使用的数据库表。请求脚本,我将其称为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 复制所有内容……停止!那就是疯狂。
-
如果它不像您声称的那样安全,那么请提供信息说明为什么会这样,而不是仅仅告诉我有更好的方法可以做到这一点,并解释其中一些方法是什么。人们只是告诉我不要做某事,我并没有从他们那里得到任何东西。
标签: javascript php ajax