PHP _GET 问题多次尝试后未刷新数据

标签 php mysql web-services html

我有一个从我的应用程序触发的 php 脚本。该脚本使用 GET 方法从 url 检索信息并将其放入数据库中。到目前为止,除了我尝试执行多个请求时,它已经可以工作了。

例如,我做了一个测试,每次我都会从 GET 中获取数据库的名称,将其放入相应的数据库中,检索最后一个条目,然后每次都会添加 7 并将其回显到屏幕/将其作为最新号码放回到数据库中。我在浏览器中尝试过此操作,每次都点击刷新,并且第一次起作用。第二次点击刷新时,它给出了与第一次相同的结果。我一直在尝试,但结果相同,所以我关闭了浏览器并再次尝试。它按其应有的方式工作。

所以我认为问题与脚本在第二次、第三次、第四次……没有收到连接有关。似乎只有第一次才有效。我认为这是缓存数据的问题,但我在 php 脚本中关闭了缓存。

有人可以告诉我为什么它只能在第一次尝试时起作用吗?

谢谢

用代码编辑

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

checkToken();

function checkToken ()
{



$username='XXXXX';
$password='XXXXX';
$database='Push';


$passed= $_GET['token'];


$pieces = explode(" ", $passed); /*Contains two pieces of information.  
                                       First is for the correct table and 
                                       and the second is the actually data 
                                       that will be put into the tables*/
$search= $pieces[1];

$table= $pieces[0];

echo $table." ".$search;

 $db= new mysqli('localhost', $username, $password, $database);

if (mysqli_connect_errno())
{
    echo 'Error: Could not connect';
    exit;

}

$query = "SELECT * FROM `Tokens` WHERE `Number` LIKE '%$search%' ";


       echo "after";

$result = $db->query($query);
if ($result) {
    $num_results = $result->num_rows;

    $row = $result->fetch_assoc();


    echo $row;

    if (!$row)
    {
        echo "No Token, insert into database";
        insertToken($table,$pieces[1]);

        return;

    }

   /*problem may be around here...? does not always go into (!row)
     after the first time when it is supposed too*/

echo $row['Numbers'];


} else {
   // echo "Query failed: {$db->error}\n";

    echo "No";

}

}




function insertToken ($daTable, $daToken)
{

$username='XXXX';
$password='XXXX';
$database='Push';

 $token=$daToken;

 $con= mysql_connect("localhost",$username,$password);

  mysql_select_db($database,$con);

  $res = mysql_query(
"INSERT INTO $daTable
VALUES ('', '$token')");
if (!$res) {
die('Invalid query: ' . mysql_error());
 } else  {
echo "complete";
 }

mysql_close($link);

  }

最佳答案

也许是缓存问题?尝试确保代码完全执行,例如回显时间

关于PHP _GET 问题多次尝试后未刷新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10376708/

相关文章:

php - 是否可以指望 header() 重定向来结束程序流程?

php - 如果未设置变量,则使用函数初始化变量 - PHP

PHP/MySQL 完整文件名而不是从 ID 中获取

mysql - character_set_filesystem 不存在于显示变量中

java - 从 WebService 解析 xml 文件的各个部分 - Android

php - 使用 stream_filter_append 和 stream_copy_to_stream 解压缩 gzip

php - MySQL 与 LIKE 子句的错误?

mysql - 不小心删除了MySQL用户

java - jax-rs 返回字符串

java - ACS 请求 URL :using onelogin toolkit 中的 SAMLResponse 为空