ホームページ >バックエンド開発 >PHPチュートリアル >安全でエラーのない PHP MySQL コード サンプルを作成するにはどうすればよいですか?

安全でエラーのない PHP MySQL コード サンプルを作成するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-14 03:30:10870ブラウズ

How to Create a Secure and Error-Free PHP MySQL Code Sample?

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 = array(
    '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);
}

このコード サンプルは次のキーをカプセル化します。原則:

  • 広範囲のデータ型の Unicode 文字セットを処理します。
  • 可読性を向上させるために緩やかな比較を利用します。
  • データベース接続を確立し、特定のデータ型を選択します。
  • を使用してユーザー入力をエスケープすることで、SQL インジェクションを防止します。 mysql_real_escape_string().
  • 実稼働モードではエラー メッセージを抑制しながら、失敗した場合はtrigger_error()を使用してエラーを適切に処理します。
  • データベースの更新が正常に完了すると、意図したメッセージを出力します。

以上が安全でエラーのない PHP MySQL コード サンプルを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。