我有一个从我的应用程序触发的 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/