One of the main challenges I faced during this project was understanding how to properly use prepared statements and stored procedures together. At first, it was confusing knowing when to use a prepared statement directly and when to call a stored procedure instead. I solved this by breaking the problem down into smaller steps and testing each part separately. Once I got one stored procedure working, the rest became much easier.
Another challenge was making sure the database connection worked both on localhost and the hosted server. I solved this by detecting the server environment and using different connection variables based on whether the site was running locally or online.
This project helped me understand how important security is when working with databases. I learned how prepared statements prevent SQL injection and why exposing raw SQL directly on a web page is unsafe. Using JSON as a layer between the database and the website also made sense once I saw how it protects access to the data.
Overall, this project helped me feel more confident working with PHP, MySQL, and secure web development practices. I now have a much better understanding of how real-world web applications manage data safely.