MySQL查询不会使用MySQLi执行

时间:2014-09-24 17:14:19

标签: php mysql mysqli

我正在制作一个小网址短片,一切都像魅力一样。但是我想创建一个“点击”计数器,这样我就可以看到每个链接获得了多少次点击。

这是我的代码:

<?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中运行查询,它就可以正常工作。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

只是查看你的代码:

$redirect = $data[url_link];

您需要在您正在调用的数组成员周围引用,例如:

$redirect = $data["url_link"];

当前的方式应该抛出语法错误。如评论中所述,您可能已关闭错误报告。