sql >> データベース >  >> RDS >> Mysql

奇妙で迷惑なエラー:未定義の関数mysql_query()の呼び出し

    PHP7はmysql_query()を取り除きました それはさまざまな点で問題があるからです! APIはグッドプラクティスを奨励していません。公式の方針は、それが維持されておらず、プリペアドステートメントがないということです!?!これは本質的に、SQLインジェクションにつながる悪い慣行を助長するPHPの最大の問題であり、それは大きな大きな悪い状況です。

    ただし、私はレガシーコードベースを使用しているため、場合によってはあなたと同じ状況に対処する必要があります。コードベースが小さい場合は、db接続メソッドを更新するだけです。大規模なコードベースをお持ちの場合は、次のことをお勧めします:

    • このコードベースのphpバージョンをphp5.6にロールバックすると、2016年のもう少しでサポートされるようになります。
    • 時間をかけてPDOに更新してください(PDOの周りにラッパーを作成して、冗長性を減らし、準備されたクエリを許可することができます)。
    • mysqliを無視します。 mysql_ *からアップグレードするのに5分かかる場合は、おそらくそれが間違っており、sql-injectionを開いたままになっています。 PDOに行き、準備されたクエリの使用を開始するだけで、夜眠ることができます。
    • 最新のプロジェクトでphp7を引き続き使用する場合は、古いphp5.6レガシーコードベースを含むコンテナインスタンスを起動します。


    1. mysqlクエリ:SELECT DISTINCT column1、GROUP BY column2

    2. OracleからPostgreSQLへ—カーソルと一般的なテーブル式

    3. エラー1044(42000):データベース'db'へのユーザー''@'localhost'のアクセスが拒否されました

    4. OracleがDBMS_STATS.GATHER_TABLE_STATSを使用するのはなぜですか?