0
PDO를 사용하여 데이터베이스에 연결되었습니다. 내 문제는, 어떤 이유로 테이블에 물건을 삽입 할 수 없다는 것입니다. 내가 mysqli_connect();
을 사용하여 연결했을 때 나는 그것을 할 수 있었다. 그러나 그것은 나를 위해 충분히 안전하지 않다. 여기 PHP - PDO가있는 테이블에 삽입 할 수 없습니다
<?php
$user = "root";
$pass = "";
$loggedin;
$conn = new PDO('mysql:host=localhost;dbname=login', $user, $pass);
if (!$conn) {
die("Connection to the database failed");
}
이 코드 데이터베이스에 물건을 삽입하려고 :
<?php
include '../dbh.php';
$first = $_POST['first'];
$last = $_POST['last'];
$uid = $_POST['uid'];
$pwd = $_POST['pwd'];
if (empty($first)) {
header("Location: ../signup.php?error=empty");
exit();
} if (empty($last)) {
header("Location: ../signup.php?error=empty");
exit();
} if (empty($uid)) {
header("Location: ../signup.php?error=empty");
exit();
} if (empty($pwd)) {
header("Location: ../signup.php?error=empty");
exit();
} else {
$sql = "SELECT uid FROM users WHERE uid='$uid'";
$result = mysqli_query($conn, $sql);
$uidcheck = mysqli_num_rows($result);
if ($uidcheck > 0) {
header("Location: ../signup.php?error=username");
exit();
} else {
$sql = "INSERT INTO users (first, last, uid, pwd)
VALUES ('$first', '$last', '$uid', '$pwd')";
$result = mysqli_query($conn, $sql);
header("Location: ../index.php");
}
}
높은 보안이 확실 _not_ A는 여기
는 데이터베이스에 연결 내 코드입니다 mysqli보다'PDO'를 선호하는 이유. – arkascha당신은'new PDO (...) '를 사용하여 생성 한 객체에서 mysqli _...() 함수를 사용할 수 없다! _ 설명서 및 예제를 읽으십시오! _ HTTP 서버 오류 로그 파일을 간단하게 살펴보면이 문제가 여러분에게 직면 한 것이라고 알려졌을 것입니다. – arkascha
코드가 SQL 주입 공격에 취약합니다. "매개 변수 바인딩"과 함께 "준비된 명령문"의 이점에 대해 읽으 려합니다. – arkascha