sql >> Databasteknik >  >> RDS >> Mysql

Byt stor webbplats från MySQL till MySQLi

Det finns inget enkelt svar på din fråga eftersom praktiskt taget alla enkla sätt att göra detta innebar att göra saker annorlunda när ansökan skrevs.

Om du har direktanrop till mysql_*-funktioner i hela din kod och inget databasabstraktionslager där du gör dina frågor via en hjälpklass eller funktion måste du redigera varje kommando.

Du kan inte bara komma undan med att lägga till ett i till kommandon som mysql_query som procedurmässigt mysqli_query() kräver att den första parametern är länken till db där med mysql_query() om en anslutning alls gavs var det en andra parameter.

Istället för att bara ändra mysql_query(...) till mysqli_query($link,.....) skulle jag rekommendera att det inte finns någon bättre tid att sätta ett db-abstraktionslager på plats. Så använd funktioner t.ex. sql_query() som faktiskt bearbetar dina frågor så i framtiden om du behöver ändra DB igen kan du bara uppdatera de specifika db-kommandona i en abstraktionsfil. På så sätt om du skriver en funktion som omsluter mysqli_query kan du helt enkelt byta namn på din mysql_query() till din hjälpfunktion och låta hjälparfunktionen oroa sig för att lägga in länken där.

Även om det är det enklaste sättet, kommer det inte att binda parametrar eller förbereda uttalanden, vilket är en viktig faktor för att förhindra sql-injektionssårbarheter

När du har ändrat alla dessa kommandon måste du testa.

Om du inte har några automatiserade test skrivna så är det förmodligen ett bra tillfälle att börja skriva dem. Även om du måste kontrollera att varje förändring har fungerat, om du gör det med ett automatiskt test kan du undvika den smärtan i framtiden.



  1. Finns det ett bättre sätt att extrahera tiden på dygnet?

  2. Java JDBC:dejtar konsekvent två lediga dagar

  3. SQL en-till-många-relation - Hur väljer man rader beroende på flera till-många-egenskaper?

  4. <SQL>Hur man ändrar storleken på VARCHAR2 i tabellen