[11] laravel - 쿼리빌더 mysql내장함수 사용
2024. 6. 25. 10:49ㆍlaravel(라라벨)
728x90
[ 환경 ]
ㄴ laravel 10.48.9
1. 기존 코드
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class login extends Controller
{
public function login(){
$id = $_POST['id'];
$pw = $_POST['password'];
$pw1 = \DB::table('member')->where('pw', '=', 'PASSWORD($pw)')->first();
$check_pw = $pw1->pw; // 비밀번호 조회
echo $check_pw; // 비밀번호 출력
die();
}
}
ㄴ 해당 오류 출력
- where('pw', '=', 'PASSWORD($pw)') 에서 데이터 부분을 아예 텍스트로 인식해서 생긴 오류
2. raw() 사용
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class login extends Controller
{
public function login(){
$id = $_POST['id'];
$pw = $_POST['password'];
$pass = 'PASSWORD('.$pw.')'; // 비밀번호 변수
$pw1 = \DB::table('member')->where('pw', '=', \DB::raw('PASSWORD('.$pw.')'))->first();
$check_pw = $pw1->pw; // 비밀번호 조회
echo $check_pw; // 비밀번호 출력
die();
}
}
ㄴ DB::raw()을 사용하여 mysql password함수 사용
- password함수안에서 php [.]으로 문자열 이어주기. ($pass 변수를 그대로 사용해도됨)
3. 확인
ㄴ 정상출력완료 (비밀번호를 password함수로 암호화한 값이 출력된 모습)
728x90
'laravel(라라벨)' 카테고리의 다른 글
[12] laravel - 쿼리빌더 get() 컬럼값만 출력하기. (0) | 2024.06.28 |
---|---|
[10] laravel - Class "App\Http\Controllers\DB" not found 오류 (0) | 2024.06.24 |
[9] laravel - curl전송(외부사이트)_2 (0) | 2024.06.20 |
[8] laravel - curl api전송(외부사이트)_1 (0) | 2024.06.04 |
[7] laravel - controller 사용법 (0) | 2024.06.03 |