본문 바로가기
MySql

MySQL PHP and MySQL Select a Single Value

by 베이스 공부 2020. 12. 15.
반응형

MySQL 테이블에서 단일 값을 선택하는 방법을 알고 싶습니다. 테이블에는 username id 열이 포함됩니다 ( id 는 자동 증가이고 username 은 고유함). 사용자 이름이 주어지면 주어진 사용자 이름에 해당하는 id 열의 값과 동일한 세션 변수 $ _ SESSION [ 'myid'] 를 설정하려고합니다. 이미 시도한 코드는 다음과 같습니다.

session_start();
$name = $_GET["username"];
$sql = "SELECT 'id' FROM Users WHERE username='$name'";
$result = mysql_query($sql);
$value = mysql_fetch_object($result);
$_SESSION['myid'] = $value;

지금까지 나는 얻고있다 :

발견 가능한 치명적인 오류 : stdClass 클래스의 개체를 문자열로 변환 할 수 없습니다.

$ value 를 문자열 유형으로 캐스팅해도 문제가 해결되지 않습니다.

 

해결 방법

 

쿼리 내에서 필드 이름이나 테이블 이름에 따옴표를 사용하지 마십시오.

객체를 가져온 후 속성 / 속성 이름으로 개체 속성 / 속성 (케이스 ID)에 액세스해야합니다.

참고 : mysql_ *가 지원 중단되었으므로 mysqli_ * 또는 PDO를 사용하세요. 여기에서는 mysqli를 사용합니다.

session_start();
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = new mysqli('localhost', 'username', 'password', 'db_name');
$link->set_charset('utf8mb4'); // always set the charset
$name = $_GET["username"];
$stmt = $link->prepare("SELECT id FROM Users WHERE username=? limit 1");
$stmt->bind_param('s', $name);
$stmt->execute();
$result = $stmt->get_result();
$value = $result->fetch_object();
$_SESSION['myid'] = $value->id;

보너스 팁 :이 유형의 시나리오에 제한 1을 사용하면 실행 시간이 절약됩니다. :)

 

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

 

 

반응형

댓글