>백엔드 개발 >PHP 튜토리얼 >안전하고 오류 없는 PHP MySQL 코드 샘플을 만드는 방법은 무엇입니까?

안전하고 오류 없는 PHP MySQL 코드 샘플을 만드는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-14 03:30:10872검색

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);
}

이 코드 샘플은 다음 키를 캡슐화합니다. 원칙:

  • 더 넓은 범위의 데이터 유형에 대한 유니코드 문자 집합을 처리합니다.
  • 느슨한 비교를 활용하여 가독성을 높입니다.
  • 데이터베이스 연결을 설정하고 특정 문자 집합을 선택합니다. 작업을 위한 데이터베이스입니다.
  • 다음을 사용하여 사용자 입력을 이스케이프하여 SQL 주입으로부터 보호합니다. mysql_real_escape_string().
  • 실패 시 Trigger_error()를 사용하여 오류를 정상적으로 처리하고 프로덕션 모드에서는 오류 메시지를 억제합니다.
  • 데이터베이스 업데이트가 성공적으로 완료되면 의도한 메시지를 출력합니다.

위 내용은 안전하고 오류 없는 PHP MySQL 코드 샘플을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.