2014-07-21 58 views
-1

我連接到數據庫,並希望選擇行中哪個tweetid在我的數組ID中但它給了我警告響應。這是我的代碼。應該心存感激,如果有人將有助於找到我的錯誤mysqli_fetch_array()警告

$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); 

我的警告是:

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

+0

tweetids和tweet id本身的元素類型很大int [20]所以這是否意味着它不起作用呢? – MIRMIX

+0

不,不管它的'int'或'bigint',如果它的整數類型那麼你不需要引號,但是對於你需要的字符串''在哪裏('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在$ IDS」' – Sadikhasan

+0

SELECT * FROM鳴叫WHERE tweetid在335138735232524289,335137588400762881,335137641488056320,335137663881445376,335137664439296000,335137677844295680,335137678750281729,335137684081242112,335137684668428288,335137690947289088,335137694139162625,335137695720427521,335137696550899712,335137698325086208, 335137713344884736,335137718432587776,335137725277683712,335138120100114432,335138300450963456,335137900469559296,335137951321300992,.... – MIRMIX

相關問題