【问题标题】:Use AJAX to return database info [closed]使用 AJAX 返回数据库信息 [关闭]
【发布时间】: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


【解决方案1】:

你可以用这样的东西来做基本的 ajax

调用

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

始终检查 jquery 上的引用 http://api.jquery.com/jquery.ajax/

在这种情况下,结果是您要“粘贴”到前端的信息。

使用数据处理程序作为响应(检索信息),您不需要在前端使用它,除非您直接从中查询。

【讨论】:

  • 部分问题是我不需要在该页面上显示任何内容。它的存在只是为了从其他站点的数据库表中获取数据,然后使用所述数据写入自己的副本。我还没有看到任何表明将返回的数组传输到 request.php 自己的 PHP 脚本的可能性。这个想法是这个东西需要自己运行。我可以使用任务调度程序来完成。
  • 你有request.php,你想在那里做什么?
  • 该文件调用 response.php,它位于不同的服务器上,因此我必须使用其完整 URL 引用它。 Response.php 将数据库表发送回 request.php。 Request.php 使用这个返回的数组来写入它自己的数据库表。
  • 为什么需要ajax?你读过 cURL 吗?
猜你喜欢
  • 2014-10-25
  • 1970-01-01
  • 2012-09-26
  • 1970-01-01
  • 2022-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多