PHP URL Shortener:Shortener.PHP返回错误消息

PHP URL Shortener:Shortener.PHP返回错误消息,php,mysql,url,Php,Mysql,Url,因此,我根据本YouTube教程(PHPAcademy)为我的网站创建了一个URL缩短器,由于缺乏PHP和MySQL方面的经验,我觉得我很快就学会了,但是我在提交URL时收到了这个错误消息 解析错误:语法错误,第37行的/home/langers/public_html/r/shorten/classes/Shortener.php中出现意外的“更新”(T_字符串) 然而,在代码中,它提到的行和暗示的T_字符串“UPDATE”是意外的,这在教程中是需要的 <?php class Short

因此,我根据本YouTube教程(PHPAcademy)为我的网站创建了一个URL缩短器,由于缺乏PHP和MySQL方面的经验,我觉得我很快就学会了,但是我在提交URL时收到了这个错误消息

解析错误:语法错误,第37行的/home/langers/public_html/r/shorten/classes/Shortener.php中出现意外的“更新”(T_字符串)

然而,在代码中,它提到的行和暗示的T_字符串“UPDATE”是意外的,这在教程中是需要的

<?php
class Shortener {
    protected $db;

    public function __construct() {
        //Demo Purposes
        $this->db = new mysqli('localhost', 'langers_langers', 'password','langers_website');
    }

    protected function generateCode($num){
        return base_convert($num, 10, 36);
    }

    public function makeCode($url){
        $url = trim($url);

        if(!filter_var($url, FILTER_VALIDATE_URL)) {
            return '';
        }

        $url = $this->db->escape_string($url);

        //Check if URL already exists
        $exists = $this->db->query("SELECT code FROM links WHERE url ='{$url}'");

        if($exists->num_rows){
            return $exists->fetch_object()->code;
        } else {

        //Insert record without a code
        $insert->$this->db->query("INSERT INTO links (url, created) VALUES ('{$url}', NOW());

        //Generate code based on id
        $code = $this->generateCode($this->db->insert_id);

        //Update Record
        $this->db->query("UPDATE links SET code = '{$code}' WHERE url = '$url'");

        return $code;
        }
    }

    public function getUrl($code){

    }
}

?>

错误发生在之前,当您错过

//Insert record without a code
$insert->$this->db->query("INSERT INTO links (url, created) VALUES ('{$url}', NOW());
还请注意,您正在使用$insert,就好像它是一个对象一样,但它不是。也许你的意思是:

$insert = $this->db->query("INSERT INTO links (url, created) VALUES ('{$url}', NOW())");

在第31行,你还没有结束你的报价。看看语法突出显示。你赢了这一次…我要发布同样的:)谢谢你,太多了!我今天和昨天花了很长时间想弄明白这一点!