2014-07-21 2 views
-1

데이타베이스에 접속 해, tweetid가 내 배열에있는 행을 선택하고 싶습니다만, 응답으로 경고가되었습니다. 이것은 내 코드입니다.mysqli_fetch_array() 경고

mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in 
+0

경고의 텍스트를 망쳐 놓지 않으면 우리가 도울 수 있다고 정말로 솔직하게 생각합니까? 우리는 독자들에게 관심이 없다 ... –

답변

3

IN이 함수이고 당신은

select * from table where col in (1,2,3); 

http://dev.mysql.com/doc/refman/5.6/en/comparison-operators.html#function_in

에 따라 값이 필요합니다 : 사람이 내 실수를

$con=mysqli_connect("localhost","root","6245","twitr"); 
    if (mysqli_connect_errno()) { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error();} 
    $ids = join(',',$tweetids); 
    $result = mysqli_query($con,"SELECT * FROM tweet WHERE tweetid in $ids"); 
    while($row = mysqli_fetch_array($result)) {} 
    mysqli_close($con); 

내 경고를 발견하는 데 도움이 될 것입니다 경우 감사 할 것입니다 것은

+0

tweetids와 tweet id의 요소 유형 자체가 큰 int [20] 그래서 그것은 그것을 위해 작동하지 않을 것인가? – MIRMIX

+0

아니요 int 형이나 bigint 형이라면 상관 없습니다. 정수형이라면 따옴표는 필요 없지만 문자열에는'col1 ('val1', 'val2'....)가 필요합니다. –

+0

그럼 왜 내 코드가 오류를주는거야? – MIRMIX

0

FIND_IN_SET (으)로 시도해보십시오.

$result = mysqli_query($con,"SELECT * FROM tweet WHERE find_in_set(tweetid,$ids)"); 
+0

다시 같은 경고 – MIRMIX

+0

당신의 쿼리를 에코와 그냥 지문을 출력 할 수 있습니까? ' "트윗 SELECT * FROM WHERE tweetid $ 식별자에서"에코 트윗 FROM' – Sadikhasan

+0

SELECT * WHERE 335138735232524289,335137588400762881335137641488056320335137663881445376335137664439296000335137677844295680335137678750281729335137684081242112335137684668428288335137690947289088335137694139162625335137695720427521335137696550899712335137698325086208에서 tweetid, 335137713344884736,335137718432587776,335137725277683712,335138120100114432335138300450963456335137900469559296335137951321300992, .... – MIRMIX

관련 문제