2013-11-01 3 views
1

으로 주어진다. 나는 최근 로그인과 등록 시스템을 만드는 방법에 대한 튜토리얼을 따라왔다. "경고 : mysql_result()가 매개 변수 1이 리소스가 될 것으로 예상하고 있지만, 부울은 C : \ xampp \ htdocs \ idea \ core에 주어진 것으로 가정하고 있지만, 나는 튜토리얼을 극단적으로 끝까지 따라 갔고 똑같은 코드를 가지고있다. \ function \ users.php on line 5 "를 입력하십시오.PHP/MySQL - mysql_result()는 매개 변수 1이 리소스가 될 것으로 예상하고, 부울은

라인 5는 return (mysql_result($query, 0) == 1) ? true : false;을 나타내며 이는 MySQL 쿼리의 return 문입니다. 이것은 내가 진행하는 것을 막고 있으며, 지금까지이 튜토리얼을 선택하는 것은 실제로 선택 사항이 아닙니다.

가 미안 해요, 난 실제 쿼리를 추가해야합니다 생각했다. $query = mysql_query("SELECT COUNT(user_id) FROM users WHERE username = '$username'"); USER_ID, 사용자와 사용자 이름 주위 이전에 역 따옴표가, 내가 사람들을 추가 할 수 있지만

+2

당신이 'FALSE', '리턴 (mysql_result (거짓, 0) == 1) 반환 잘못된 쿼리'$ query'는'같은 오류 – user2092317

+3

당신이를 반환 한 오른쪽 사이드 바 확인 했니? – jeroen

+0

mysql_query() 호출이 잘못되었다는 표시입니다. mysql_error()를 사용하여 쿼리 호출 후에 에러를 잡아 내지 않는 것은 좋지 않은 스타일이다. 또한 mysql_ * 라이브러리는 유감스럽게도 구형이기 때문에 mysqli 나 PDO로 시작하는 것이 가장 좋을 것입니다. (조금 더 가파른 학습 곡선이 있지만 요즘은 분노하고 있습니다) –

답변

2

the php manual on mysql_query으로 당신을 알려줍니다

SELECT, SHOW, DESCRIBE, EXPLAIN 및 결과 집합을 반환하는 다른 명령문의 경우 mysql_query()는 성공시 자원을 반환하고 오류시에는 FALSE를 반환합니다.

다른 유형의 SQL 문인 INSERT, UPDATE, DELETE, DROP 등의 경우 mysql_query()는 성공시 TRUE를, 오류시 FALSE를 반환합니다.

쿼리가 작동하지 않을 가능성이 높으므로 mysql_query은 false를 반환합니다.

처음 확인 (if ($query === false) {echo mysql_error();})하고 쿼리가 정상적으로 실행 된 경우에만 진행하십시오.

+0

도움을 주셔서 감사합니다. 실수로 "user_id"대신 "id"데이터베이스의 열 이름을 지정하고 코드를 올바르게 실행하기 전에 디버깅하는 것을 잊었습니다. – DingusKhan

+0

코드에는 여전히 적절한 오류 처리가 포함되어야합니다. 데이터베이스 연결이 어떤 이유로 든 실패 할 경우 (예를 들어, 코드 작성이 아무리 잘 되어도 항상 발생할 수있는 문제), 다시 동일한 오류가 발생할 가능성이 있습니다. –

1

먼저 mysqli이 아니라 mysql을 사용하십시오. 후자는 감가 상각됩니다

두 번째로 syntaxmysqli_query입니다. 먼저 연결 포인터를 전달한 다음 쿼리를 전달해야합니다. 그래서 당신은 호출 할 필요가 mysqli_connect 첫번째

$link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db'); 
$result = mysqli_query($link, 'SELECT * FROM table'); 
+1

그의 구문은 (사용 중지 된 인터페이스에도 불구하고 - 그가 php5.5 이상을 사용하고 있다면) 괜찮습니다. 이전 쿼리에서 오류가 발생하지 않으면 코드가 작동하지만 전달 된 인수의 순서에는 아무런 문제가 없습니다. –

관련 문제