질문:
오래된 mysql_* 함수를 다음으로 어떻게 교체할 수 있습니까? 데이터베이스에서 데이터를 안전하게 저장하고 검색하기 위한 PDO 및 준비된 문이 있습니까?
답변:
$hostname = '*host*'; $username = '*user*'; $password = '*pass*'; $database = '*database*'; $dbh = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);
$username = $_POST['username']; $email = $_POST['email']; $stmt = $dbh->prepare("INSERT INTO `users` (username, email) VALUES (?, ?)"); $stmt->bindParam(1, $username, PDO::PARAM_STR); $stmt->bindParam(2, $email, PDO::PARAM_STR); $stmt->execute();
PDO::PARAM_STR에는 길이 매개변수가 필요하지 않습니다. 그러나 데이터베이스 테이블의 필드에 대한 최대 문자 제한이 있는 경우 아래와 같이 PDO::PARAM_STR 뒤에 이를 지정할 수 있습니다.
$stmt->bindParam(1, $username, PDO::PARAM_STR, 255);
$user_id = $_GET['id']; $stmt = $dbh->prepare("SELECT * FROM `users` WHERE `id` = ?"); $stmt->bindParam(1, $user_id, PDO::PARAM_INT);
위 내용은 보안 데이터베이스 상호 작용을 위해 오래된 `mysql_*` 함수를 PDO 및 준비된 명령문으로 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!