Wierd and Annoying error: Call to undefined function mysql
This question already has an answer here:
PHP 7 has gotten rid of mysql_query()
because it's problematic in a variety of ways! The API does not encourage good practices, the official line is that it's unmaintained, and NO PREPARED STATEMENTS!?! It essentially is the biggest problem in PHP that encourages bad practices leading to sql injection, and that's a major big bad situation.
However, I do work with legacy codebases, so I have to deal with the same situation as you in some cases. If you have a small codebase, just update your db connection method. If you have a large codebase, here is what I recommend:
The answer is simple and this information has been available long before the release of PHP 7. It has been removed and they suggest to move over to mysqli or PDO. For a complete list of changes you need to know about for migration see this guide.
Your options:
mysql_*
have been removed, meaning they are open to be redefined. You can create wrapper functions that refer to MySqli or PDO instead. Why has it been removed?
mysql_*
functions provide just a piece of functionality of what MySQL really has to offer. (think about transactions, prepared statements, asynchronous queries, etc) I'm not saying that using MySqli or PDO will magically prevent MySQL injections but at least they provide native support against those kind of attacks. The rest is up to you; the programmer, to make sure to point data where it needs to go.
链接地址: http://www.djcxy.com/p/26584.html上一篇: 弃用