私は多くを使用しているいくつかのコードを書きmysqli_
ました。問題は、このコードを を使用しているコードと統合する必要がありmysql_
、接続、認証などを処理する必要があることです。2 番目の接続を作成したくありませんがmysql_
、準備されたクエリなどのいくつかの機能が不足しています。だから、どういうわけか魔法のように接続を「インポート」したいと思いmysqli
ます。これは可能ですか?もしそうなら、どうすればそれを行うことができますか?
3 に答える
によって作成された接続リソースmysql_connect
は、MySQLi 拡張機能で再利用できません。現在のコードで接続を処理するか、古いコードをリファクタリングする必要があります。
これは思ったほど難しいことではありません。MySQLi には手続き型インターフェースもあり、古い MySQL 拡張機能と同じように拡張機能を使用できます。MySQLi の最大の利点は、リファクタリングを少し複雑にするオブジェクト指向インターフェースです。MySQLi は、プリペアド ステートメント、トランザクション、接続文字セットなどの MySQL 機能もネイティブにサポートします (メソッド/関数にラップしますSTART TRANSACTION
) SET CHARSET utf8
。mysql_query
お役に立てれば。リファクタリングに関してより具体的な質問がある場合は、お気軽にお問い合わせください:)
いいえ、それは不可能です。
ところで、クエリを安全にする方法は、準備済みステートメントだけではありません。
これは誰もが使用すべきプレースホルダーであり、必ずしも準備済みステートメントを使用して実装する必要はありません。
プレースホルダーは mysql_* 関数を使用して簡単に実装できますが、
F4r-20 が指摘したように、データベースへの接続方法を変更して、mysql_
関数を別msqli_
のものに置き換えることができます。
途中ではなく、プロジェクトを開始する前に、何を使用するかを決定してください。準備は多くの時間を節約し、このような問題を解決します。
PS。次回はPDOを使用します。簡単、高速、OOP で、複数のデータベース タイプをサポートしています。
編集:資格情報やデータベースへの接続方法にアクセスできないため、を使用するかmysql_
、接続を変更するmysqli_
か、新しい接続を作成する必要があります...申し訳ありません:(