2
저는 MySQL을 처음 접했습니다.MySQL 효율적인 질의
$query1 ="SELECT id FROM signup WHERE Email='$Email_Input' LIMIT 1";
$result1 = mysql_query($query1)
$query2 = "SELECT id FROM signup WHERE User_name='$User_name' LIMIT 1";
$result2 = mysql_query($query2);
if (mysql_num_rows($result2)>0){
echo '1';
}
else if (mysql_num_rows($result1)>0){
echo '1';
}
내 질문 : 내가 이메일 또는 사용자 이름이 테이블에 존재하는지 여부를 확인하려면 다음 쿼리를 사용하고
ID INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
User_name VARCHAR(35) NOT NULL,
Full_name VARCHAR(55) NOT NULL,
User_vars VARCHAR(255) NOT NULL,
BirthDay DATE NOT NULL,
password CHAR(70) NOT NULL,
Security_hint VARCHAR(27) NOT NULL,
Email VARCHAR(225) NOT NULL,
userType ENUM ('a','b','c','d') NOT NULL DEFAULT 'a',
Signup_Date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
activation TINYINT(1) UNSIGNED NOT NULL,
Ip BINARY(16) NOT NULL,
PRIMARY KEY (ID),
UNIQUE KEY User_name (User_name,Email)
:이 테이블을 고려하면 하나 개의 쿼리를 실행하기위한 효율적인 방법이 있나요 둘 다의 존재를 확인 하느냐?
WHERE Email = AND User_name ='이 (가) 사용자가 해당 열에 구성된 인덱스를 가지고 있기 때문에 가장 좋을 것입니다. – Mihai
나는 당신의 코드가 SQL injection에 취약하다고 생각한다. 쿼리 문자열에 입력 값을 바로 입력하는 대신 준비된 문을 사용하십시오. –
내 모든 변수는 XSS 및 SQL 주입에 대한 필터링 및 소독 된 데이터를 보유합니다. – Tim