Nie ma łatwej odpowiedzi na twoje pytanie, ponieważ praktycznie każdy prosty sposób na zrobienie tego wymagał zrobienia czegoś inaczej, gdy aplikacja została napisana.
Jeśli masz bezpośrednie połączenia z funkcjami mysql_ * w całym kodzie i bez warstwy abstrakcji bazy danych, w której wykonujesz zapytania za pomocą klasy pomocniczej lub funkcji, musisz edytować każde polecenie.
Nie można po prostu uciec z dodaniem I do poleceń jak mysql_query jak proceduralnie mysqli_query()
wymaga pierwszy parametr będzie link do db gdzie z mysql_query()
jeśli połączenie zostało wydane w ogóle, to był drugi parametr.
Zamiast tylko zmieniać mysql_query (...) do mysqli_query ($ link, .....), polecam, aby nie było lepszego czasu na umieszczenie warstwy abstrakcji db w miejscu. Tak więc użyj funkcji, np. Sql_query(), która faktycznie przetwarza twoje zapytania, więc w przyszłości, jeśli będziesz potrzebować zmienić DB ponownie, możesz po prostu zaktualizować komendy db w jednym pliku abstrakcji. W ten sposób, jeśli napiszesz funkcję owijającą mysqli_query, możesz po prostu zmienić nazwę mysql_query() na funkcję pomocniczą i pozwolić funkcji pomocniczej martwić się o umieszczenie tam odnośnika.
Mimo że to najprostszy sposób, że nie zwiąże parametry lub przygotować sprawozdanie, które jest głównym czynnikiem w zapobieganiu SQL injection Luki
Po zmianie wszystkie te polecenia musisz przetestować.
Jeśli nie masz pisemnych testów automatycznych, prawdopodobnie jest to dobry moment na rozpoczęcie pisania. Nawet jeśli będziesz musiał sprawdzić, czy każda zmiana zadziałała, jeśli zrobisz to za pomocą automatycznego testu, możesz uniknąć tego bólu w przyszłości.
nie jest to łatwy sposób. trzeba sprawdzić wszystkie skrypty i zastąpić połączenia. i przetestuj. – Aris
czy masz testerów? – DevZer0
Jakie są główne rzeczy, które się zmieniają? Tylko parametry i nazwa funkcji? I nie, nie mam wielu testerów ... – Jordy