我正在制作一个小型网址缩短器,一切都非常顺利。不过,我想创建一个“点击”计数器,这样我就可以看到每个链接获得了多少次点击。
这是我的代码:
<?php
if (!empty($_GET["url"])) {
$db = new mysqli("myhost", "myuser", "mypass", "mydb");
if (mysqli_connect_errno()) {
throw new Exception("Connect failed: \n", $db->connect_error());
exit();
}
$get = $db->real_escape_string($_GET["url"]);
$result = $db->query("SELECT url_link FROM urls WHERE url_short =
'" . $get . "'
");
$db->query("UPDATE urls SET url_hits = url_hits + 1 WHERE url_short =
'" . $get . "'
");
$data = $result->fetch_assoc();
$redirect = $data[url_link];
$db->close();
header('HTTP/1.1 301 Moved Permanently');
header("Location: " . $redirect);
} else {
header('HTTP/1.1 301 Moved Permanently');
header("Location: home.php");
}
我期望发生的是第二个查询会将数据库中的数字增加 1。
但是没有任何反应,脚本不会失败或抛出任何错误,如果我直接在 MySQL 中运行查询,它工作得很好。
我做错了什么?
最佳答案
仅查看您的代码:
$redirect = $data[url_link];
您需要在调用的数组成员周围添加引号,如下所示:
$redirect = $data["url_link"];
您当前的方式应该会引发语法错误。正如评论中提到的,您可能已关闭错误报告。
关于php - MySQL 查询不会使用 MySQLi 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26022749/