>백엔드 개발 >PHP 튜토리얼 >PHP에서 MySQLi 확장을 사용하여 MySQL 데이터베이스를 안전하게 업데이트하는 방법은 무엇입니까?

PHP에서 MySQLi 확장을 사용하여 MySQL 데이터베이스를 안전하게 업데이트하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-15 01:04:18213검색

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이 업데이트되었습니다."라는 메시지가 표시됩니다. 업데이트가 성공하면 이 표시됩니다. 그렇지 않으면 오류가 발생합니다.
  • 개발 중에 더 나은 디버깅을 위해 오류 보고가 활성화됩니다. 프로덕션 모드에서는 이 설정을 비활성화하여 최종 사용자에게 PHP 오류 메시지가 표시되지 않도록 할 수 있습니다.

이 코드 샘플은 참조용으로 제공되며 모든 PHP 애플리케이션에 대한 완전한 솔루션으로 간주되어서는 안 됩니다. . 향상된 보안과 성능을 제공하므로 최신 MySQL 애플리케이션에는 PDO 확장을 사용하는 것이 좋습니다.

위 내용은 PHP에서 MySQLi 확장을 사용하여 MySQL 데이터베이스를 안전하게 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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