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