본문 바로가기
MySql

MySQL 선택 쿼리 값을 PHP 변수로 가져 오는 방법은 무엇입니까?

by 베이스 공부 2021. 1. 4.
반응형

내 변수에서 리소스 ID를 얻지 못하도록 MySQL 가져 오기를 사용해야한다는 것을 알고 있지만 그 방법을 도와 줄 수 있는지 궁금했습니다. 여러 튜토리얼에서 그들이 루프를 사용하는 것을 보았지만 하나의 문자열을 변수로 선택하고 싶습니다. 내가 가진 코드는 다음과 같습니다.

$img = mysql_query('SELECT pname FROM photos WHERE pphotoid=21');
echo $img;

기본적으로 $ img 가 현재 표시되는 Resource id # 3 이 아닌 데이터베이스의 문자열을 포함하기를 원합니다. 또한 내가 작성한 내용이 SQL 주입에 취약합니까?

MySQL을 배우면 도움이 될 것입니다!

 

해결 방법

 

$handle = mysql_query('SELECT pname FROM photos WHERE pphotoid=21');
$row = mysql_fetch_row($handle);
echo $img[0];


이 코드는 당신을 위해 작동합니다.

SQL 주입을 방지하려면 mysql_escape_string ()과 같은 이스케이프 함수를 사용해야합니다. 또한 입력 내용을 확인하고 유효성을 검사해야합니다.

여기에서 더 많은 것을 배울 것입니다


또한 mysql_ *는 PHP 5.5.0에서 더 이상 사용되지 않으며 향후 제거 될 예정이므로 PDO를 사용하는 것이 좋습니다.

여기에 PDO로 db에 연결하는 방법을 배우는 튜토리얼이 있습니다.


PDO의 코드 (db에 연결되어 있다고 가정)는 다음과 같습니다. $ id = intval (21); //이 코드는 무의미하지만 $ _GET을 통해 21을 얻으면 정수로 캐스팅하고 주입을 방지합니다.

$stmt = $db->prepare("SELECT pname FROM photos WHERE pphotoid=?");
$stmt->execute(array($id));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo $row['pname'];

 

참조 페이지 https://stackoverflow.com/questions/16088810

 

 

반응형

댓글