ホームページ > バックエンド開発 > PHPチュートリアル > PHP の MySQLi 拡張機能を使用して MySQL データベースを安全に更新する方法

PHP の MySQLi 拡張機能を使用して MySQL データベースを安全に更新する方法

Mary-Kate Olsen
リリース: 2024-12-15 01:04:18
オリジナル
215 人が閲覧しました

How to Securely Update a MySQL Database Using the MySQLi Extension in PHP?

完璧な MySQL 拡張機能コード サンプル

この質問の目的は、MySQL 拡張機能を使用した簡潔で安全な PHP コード サンプルを提供することです。コードでは、次のような mysql_* 関数に関連する一般的なエラーを回避する必要があります。

  • SQL インジェクション
  • 壊れたエラーのレポート
  • クロスサイト スクリプティング (XSS) インジェクション

コードサンプル:

<?php

header('Content-type: text/html; charset=utf-8');
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);

$config = [
    'host' => '127.0.0.1',
    'user' => 'my_user',
    'pass' => 'my_pass',
    'db' => 'my_database'
];

$connection = @mysql_connect($config['host'], $config['user'], $config['pass']);

if (!$connection) {
    trigger_error('Unable to connect to database: ' . mysql_error(), E_USER_ERROR);
}

if (!mysql_select_db($config['db'])) {
    trigger_error('Unable to select db: ' . mysql_error(), E_USER_ERROR);
}

if (!mysql_set_charset('utf8')) {
    trigger_error('Unable to set charset for db connection: ' . mysql_error(), E_USER_ERROR);
}

$result = mysql_query(
    'UPDATE tablename SET name = "' . mysql_real_escape_string($_POST['name']) . '" WHERE id = "' . mysql_real_escape_string($_POST['id']) . '"'
);

if ($result) {
    echo htmlentities($_POST['name'], ENT_COMPAT, 'utf-8') . ' updated.';
} else {
    trigger_error('Unable to update db: ' . mysql_error(), E_USER_ERROR);
}
?>
ログイン後にコピー

説明:

  • このコードは、mysql_connect() を使用して MySQL データベースに接続し、mysql_select_db で使用するデータベースを指定します。 ().
  • mysql_set_charset() 関数は、接続用の文字セットを UTF-8 に設定するために使用されます。
  • SQL 更新クエリは、SQL インジェクションを防ぐために、プレースホルダーと mysql_real_escape_string() 関数を使用して構築されます。
  • クエリ結果がチェックされ、「$name updated」というメッセージが表示されます。アップデートが成功すると が表示されます。それ以外の場合は、エラーがトリガーされます。
  • 開発中のデバッグを改善するためにエラー報告が有効になっています。運用モードでは、この設定を無効にして、エンド ユーザーへの PHP エラー メッセージを抑制できます。

このコード サンプルは参考として提供されており、すべての PHP アプリケーションに対する完全なソリューションとはみなされないことに注意してください。 。セキュリティとパフォーマンスが強化されるため、最新の MySQL アプリケーションには PDO 拡張機能を使用することをお勧めします。

以上がPHP の MySQLi 拡張機能を使用して MySQL データベースを安全に更新する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート