반응형
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
반응형
'MySql' 카테고리의 다른 글
MySQL PDOException SQLSTATE [HY000] [2002] 해당 파일 또는 디렉토리가 없습니다. (0) | 2020.12.15 |
---|---|
MySQL 로그인 비밀번호 용 PHP 솔트 및 해시 SHA256 (0) | 2020.12.15 |
MySQL 이전 달의 모든 행을 가져 오는 쿼리 (0) | 2020.12.15 |
MySQL은 데이터베이스 파일을 어디에 저장합니까? (0) | 2020.12.14 |
MySQL 교리-준비된 문장 만이 아니라 실제 SQL을 어떻게 인쇄 할 것인가? (0) | 2020.12.14 |
댓글