MySQL 是一个关系型数据库管理系统,广泛用于存储和管理数据。生成短网址通常涉及到将长网址映射到一个较短的字符串,以便于分享和记忆。这种短网址服务通常需要一个数据库来存储长网址与短网址之间的映射关系。
以下是一个基于MySQL和递增ID生成短网址的简单示例:
CREATE TABLE url_mapping (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
long_url TEXT NOT NULL,
short_url VARCHAR(10) NOT NULL UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "url_shortener";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
function generateShortUrl($id) {
$base62 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$shortUrl = "";
while ($id > 0) {
$shortUrl = $base62[$id % 62] . $shortUrl;
$id = intval($id / 62);
}
return $shortUrl;
}
// 插入长网址并生成短网址
$long_url = "https://www.example.com/very/long/url";
$stmt = $conn->prepare("INSERT INTO url_mapping (long_url) VALUES (?)");
$stmt->bind_param("s", $long_url);
$stmt->execute();
$last_id = $conn->insert_id;
$short_url = generateShortUrl($last_id);
// 更新短网址
$stmt = $conn->prepare("UPDATE url_mapping SET short_url = ? WHERE id = ?");
$stmt->bind_param("si", $short_url, $last_id);
$stmt->execute();
echo "长网址: " . $long_url . "\n";
echo "短网址: " . $short_url . "\n";
$stmt->close();
$conn->close();
?>
希望以上信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云