Как записать в базу ссылку?
Любая ошибка синтаксиса, вызванная передаваемыми в запрос данными говорит о том, что запрос в принципе пишется неверно. А по-старинке, путем запихивания всех переменных прямо в строку запроса.

Так давно уже никто не делает (под "никто" я имею в виду программистов, а не самоучек, которые сами от горшка два вершка, а уже учат других как писать программы, и которых, к сожалению, развелось немыслимое количество, что на тостере, что - самое печальное - на ютубе, так что встретить нормальный код на просторах интернета - это реальная проблема).

чтобы избежать любых проблем с данными, и сделать код читабельнее и короче, данныев базу данных следует отправлять отдельно от запроса.

$sql = "INSERT INTO t (text, author_id) VALUES(?,?)"; // заменим переменные на специальные маркеры
$stmt = $mysqli->prepare($sql); // подготовим запрос к выполнению.
$stmt->bind_param("ss", $text, $author); // привяжем к нему переменные
$stmt->execute(); // и выполним его
три простых шага, а код становится гораздо чище, безопаснее и короче.
причем это в mysqli три, а в PDO вообще два:
$sql = "INSERT INTO t (text, author_id) VALUES(?,?)"; // заменим переменные на специальные маркеры
$stmt = $pdo->prepare($sql); // подготовим запрос к выполнению.
$stmt->execute([$text, $author]); // сразу и привяжем и выполним
Нужно экранизировать специальные символы
$text = mysqli_real_escape_string($conn, $text); //Для $conn
$text = $mysqli->real_escape_string($text); //Для $mysqli

https://www.php.net/manual/ru/mysqli.real-escape-s...