0
$short = $_REQUEST[ "short" ];
$mysqli = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB);
$clicks = $mysqli->query("SELECT clicks FROM leafy_urls WHERE short = '$short'")->fetch_object()->clicks;
$clicks++;
$statement = $mysqli->prepare("UPDATE leafy_urls SET clicks=? WHERE short=?");
$statement->bind_param('is', $clicks, $short);
$results = $statement->execute();
if($results)
{
$long_url = $mysqli->query("SELECT long_url FROM leafy_urls WHERE short = '$short'")->fetch_object()->long_url;
Header("HTTP/1.1 301 Moved Permanently");
header("Location: " .$long_url. "");
}
else
{
//$html = "Error: Cannot find short URL";
$html = 'Error : ('. $mysqli->errno .') '. $mysqli->error;
}
$mysqli->close();
このコードは、エラーをスローしませんが、データベースの番号は増えません。あなたはプリペアドステートメントを使用しますが、あなたがそうのように、すべての入力値のためにそれを使用する必要があることを1PHP Mysqli URL更新の更新
愚かな質問です。値をインクリメントするために純粋にsqlを使用するにはどうすればよいですか?更新時に自動インクリメントを追加しますか? – Blizzard
あなたはこれを次のようにします:私の答えで見ることができる 'clicks = clicks + 1'。 – MarcHoH
調整が完了しました。まだクリック数を更新していません。私は何かを欠いているに違いない? – Blizzard