sql >> Database teknologi >  >> RDS >> Mysql

Hvorfor er PHPs mysql_-funktioner forældet?

Mysql-udvidelsen er gammel og har eksisteret siden PHP 2.0, udgivet for 15 år siden (!!); som er et afgjort anderledes udyr end det moderne PHP, som forsøger at afgive fortidens dårlige praksis. MySQL-udvidelsen er en meget rå, lav-niveau-konnektor til MySQL, som mangler mange bekvemmelighedsfunktioner og derfor er svær at anvende korrekt på en sikker måde; det er derfor dårligt for noobs. Mange udviklere forstår ikke SQL-injektion, og mysql API'et er skrøbeligt nok til at gøre det svært at forhindre det, selvom du er klar over det. Den er fuld af global tilstand (for eksempel implicit forbindelse), hvilket gør det nemt at skrive kode, der er svær at vedligeholde. Da det er gammelt, kan det være urimeligt svært at vedligeholde på PHP-kerneniveauet.

Mysqli-udvidelsen er meget nyere og løser alle ovenstående problemer. PDO er også ret nyt og løser også alle disse problemer plus mere.

På grund af disse grunde* vil mysql-udvidelsen blive fjernet engang i fremtiden. Den gjorde sit arbejde i sin storhedstid, ret dårligt, men den gjorde det. Tiden er gået, bedste praksis har udviklet sig, applikationer er blevet mere komplekse og kræver en mere moderne API. mysql er ved at blive pensioneret, lev med det.

I betragtning af alt dette er der ingen grund for at blive ved med at bruge det bortset fra inerti.

* Dette er min sunde fornuft opsummerende grunde; for hele den officielle historie, se her:https://wiki.php.net/rfc/mysql_deprecation

Udvalgte citater fra det dokument følger:



  1. Få Short Day Name i SQL Server (T-SQL)

  2. MySQL `FORCE INDEX` brugssager?

  3. Hvordan formaterer jeg et tal med kommaer i T-SQL?

  4. hvordan man erklærer global variabel i SQL Server ..?