Por que não se deve usar funções obsoletas mysql_* em PHP e com o que substituí-las?
Olá a todos! Sou um desenvolvedor PHP iniciante e estou estudando por livros antigos. Em todos os exemplos, a conexão com o banco de dados MySQL é assim:
```php
$link = mysql_connect('localhost', 'root', '');
mysql_select_db('my_database', $link);
$result = mysql_query("SELECT * FROM users WHERE id = " . $_GET['id']);
while ($row = mysql_fetch_assoc($result)) {
echo $row['name'];
}
```
Tudo funciona, mas vejo que no PHP moderno essas funções geram erros. Nos logs, diz que estão obsoletas. Nos fóruns, falam que foram removidas no PHP 7. Entendo que preciso migrar para algo novo, mas não compreendo: qual é o problema específico do mysql_*? Afinal, elas funcionam. Por que são perigosas? E o que usar no lugar — mysqli ou PDO? Qual a diferença? Agradeço por uma explicação detalhada com exemplos, para que eu possa reescrever meu código corretamente.
<<>>
Principais razões para abandonar mysql_*
Você encontrou o problema clássico de código obsoleto. As funções mysql_* foram removidas