可以运行SQL查询而不需要任何用户操作


possible to run sql query without any user action?

我想知道是否有可能运行sql查询时,其他服务器发送数据到我的服务器与post方法。没有用户操作。它直接在服务器之间发送数据。

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $servername = "localhost";
    $username = "test";
    $password = "test123";
    $conn = new mysqli($servername, $username, $password);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    $selected = mysql_select_db("test",$conn)  or die("Could not select examples");

    $sql = "INSERT INTO `tablename`.`test` (`id`, `startdate`, `enddate`) VALUES (NULL, '2016-09-08', '2016-09-09');";
    $retval = mysql_query( $sql, $conn );
    if(! $retval )
    {
      die('Could not enter data: ' . mysql_error());
    }
    mysql_close($conn);
}
?>

是否可以在没有用户操作的情况下运行查询?谢谢。

有一种后端-前端的方式在客户端和服务器之间进行通信。我知道这听起来不像是你想要的,但这就是你想要的。

如何工作:因为后端从客户端获得请求,并基于此请求,他做一些事情(例如,使SQL选择)。

在您的情况下,您的客户端将是另一个服务器。并且请求不会来自某个.js,而是来自另一个.php文件。然而,它仍然以同样的方式工作。

非常基本的例子:

这是发送数据的服务器

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.example.com/server.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
            "postvar1=value1");
// in real life you should use something like:
// curl_setopt($ch, CURLOPT_POSTFIELDS, 
//          http_build_query(array('postvar1' => 'value1')));
// receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);

等待请求的服务器:

if(isset($_POST['postvar1'])) {
   $data = $_POST['postvar1'];
   // Here comes your logic..
}

是的,您可以在用户不做任何事情的情况下运行查询。你也不想使用mysql_*。您可能需要查看mysqli_*函数或PDO。