将URL中的变量提交到MySQL数据库

时间:2016-06-16 00:24:03

标签: php html mysql

我想有一个页面,当有人点击我发送的预先格式化的链接时,会将URL中的变量写入MySQL数据库并显示"谢谢你"或对用户的东西。

示例:

用户可以点击格式为http://www.example.com/click.php?id=12345

的链接

当页面加载时,12345将写入MySQL数据库中的一个表,它会显示一个谢谢你,就是这样。

似乎它应该足够简单,但我无法找到任何内容。我可能错了,因为这对我来说都是新手。

3 个答案:

答案 0 :(得分:2)

您最好的选择是使用$ _GET ['id'],它将从您的网址中获取值。

从你的url中获取id后,你会想要使用PDO或mysqli预处理语句来保护自己免受sql注入。

我希望这会有所帮助。

根据Kevin Voorn的评论更新。

if(isset($_GET['id']) && !empty($_GET['id'])) {

$logged_id = $_GET['id'];

$stmt = $mysqli->prepare("INSERT INTO tableName (`logged_id`) VALUES (?)");
$stmt->bind_param('i', $logged_id);
$stmt->execute();

if($stmt->affected_rows > 0){

    echo "Thank You.";

}

$stmt->close();

}

答案 1 :(得分:1)

用户$ _GET来检索该值并将其放入您的表中。 例如:

  

code.php中的代码

 CNullDecorator () { return ; }

答案 2 :(得分:0)

感谢您的回复。我最终找到了这个页面:https://www.binpress.com/tutorial/using-php-with-mysql-the-right-way/17,描述了使用mysqli连接到我的数据库的过程。我使用该页面在../db.php中创建必要的函数,并将其包含在捕获url的实际PHP脚本中。我的脚本最终看起来像这样:

<?php
require '../db.php';
date_default_timezone_set('UTC');

$date = date("Y-m-d H:i:s T");

$db = new Db();

$db_id = $db -> quote($_GET['id']);
$db_date = $db -> quote($date);

$result = $db -> query("INSERT INTO `table` (`id`,`GUID`,`AccessTime`) VALUES (NULL, " . $db_id . "," . $db_date . ")");

if($result === false) {
    exit();
} else {
    echo "<html><body><center><br><h1>Thank You!</h1></center></body></html>";
}
?>