좋아, 그래서 나는 '왜 mysql_fetch_array와 함께이 경고가 ...'에 대한 질문을 여러 번 받았는지 알고 있습니다. 내 문제는 서버 가이 경고를 뱉어내는 이유가 쿼리 자체 때문이라는 모든 허용 된 답변입니다. 옳지 않다 ... 이것은 나에게 해당되지 않는다.
다음은 아래 코드입니다.
$dbhost = "host";
$dbuser = "user";
$dbpass = "pass";
$dbname= "db";
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname) or die ('<META HTTP-EQUIV="Refresh" CONTENT="0;URL=Failed.php?dberror=1">');
$token = mysql_escape_string($_GET['token']);
$query = "SELECT * FROM newuser WHERE token='$token'";
$result = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_array($result)) {
do stuff...
}
'while'문 내의 모든 것이 잘 실행되고 있습니다. 검증 할 수있는 DB가 일부 변경됩니다. 더 중요한 것은 쿼리가 오류 세부 정보를 내 보내지 않는다는 것입니다. $ result === false 인 경우 테스트를 시도하고 오류 정보를 요청했지만 아무것도 반환하지 않습니다. 내가 알 수 있듯이 쿼리 문자열은 괜찮고 실패하지 않습니다.
내가 여기서 뭘 잘못하고 있니? PHP가 SQL 문 이외의 While 매개 변수를 좋아하지 않는 다른 이유가 있습니까? (다시 말하지만 나쁘지 않다고 확신합니다)?
또한 mysqli / PDO를 사용해야한다는 것을 알고 있습니다 .... 가까운 장래에이 기능으로 전환 할 계획이지만이 작업을 수행하기 위해 머리카락을 뽑아 내고 있는데 왜 그렇게 될지 모르겠습니다. 티. 이 시점에서 그것은 더 개인적인 것입니다 ...
도움을 주셔서 감사합니다. 추가 정보가 필요하면 알려주세요. (PHP 버전 5.3)
다음은 쿼리 문자열 ($ query)의 에코입니다.
SELECT * FROM newuser WHERE token='6e194f2db1223015f404e92d35265a1b'
다음은 쿼리 결과 ($ result)의 var_dump입니다 : resource (3) 유형 (mysql 결과)
해결 방법
$query = "SELECT * FROM newuser WHERE token='$token'";
$result = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_array($result)) {
do stuff...
}
die
문이 실행되지 않으면 while 루프에 들어갈 때 $ result
가 정상입니다. 문제는 아마도 루프 내부의 쿼리에도 $ result
를 사용하여 결국 false로 설정된다는 것입니다.
참조 페이지 https://stackoverflow.com/questions/15723897
'MySql' 카테고리의 다른 글
MySQL MyISAM 및 InnoDB는 언제 사용합니까? (0) | 2021.01.08 |
---|---|
MySQL Workbench : 연결을 유지하는 방법 (0) | 2021.01.08 |
MySQL 필드에 NULL이 포함되어 있으면 MySQL CONCAT에서 NULL을 반환합니다. (0) | 2021.01.08 |
MySQL은 백분율 계산 (0) | 2021.01.07 |
MySQL Eclipse 프로젝트에 JDBC mysql 드라이버를 추가하는 방법은 무엇입니까? (0) | 2021.01.07 |
댓글