我有以下輸出: 「?ID = 12345」用PHP困惑While循環
12345: 1
1234: 7
1234: 7
1234: 6
1234: 4
它是從其中結尾的URL產生。應該發生的事情是,id在數據庫中存在時會增加1,或者當數據庫不存在時添加。 1234年產生的最後結果是正確的,但我怎樣才能阻止1234年前的結果被製造出來?
while ($row = $database->row()->fetch()) {
$id = $row["id"];
$count = $row["count"];
if ($id != $_GET["id"]) {
$insert = new MySQLConnect();
$insert->query("INSERT INTO links VALUES (:id, 1);");
$insert->run(array("id" => $_GET["id"]);
} elseif ($id == $_GET["id"]) {
$update = new MySQLConnect();
$update->query("UPDATE links SET count=count + 1 WHERE id=:id;");
$update->run(array("id" => $_GET["id"]);
}
}
編輯:
function display_data()
{
$display = new MySQLConnect();
$display->query("SELECT * FROM links;");
$display->run();
while ($row = $display->row()->fetch()) {
$id = $row["id"];
$count = $row["count"];
$GLOBALS["output"] .= $id . ": " . $count . "<br/>";
}
}
只是一個側面說明了ID:什麼如果我去'?id ='','')會發生? DROP TABLE鏈接; --'? –
你知道什麼是循環嗎?差異foreach和while? – pregmatch
[小心Bobby表格](http://xkcd.com/327/) – gtgaxiola