2012-10-05 73 views
0

Possible Duplicate:
PHP PDO: Can I bind an array to an IN() condition?在MySQL()與PDO查詢

我只有一個愛好做PHP與MySQL的網站工作,我的整個生命我一直使用毫無準備的語句,直到我決定嘗試PDO昨晚查詢。除了當我使用IN()時,我已經成功地讓他們工作。例如,當我這樣做:

$stmt3 = $dbConnection->prepare("SELECT * FROM member_search WHERE zip IN(:zip_codes_in_distance)"); 
$stmt3->execute(array(':zip_codes_in_distance' => $zip_codes_in_distance)); 
foreach ($stmt3 as $user_list) { 
    //do cool stuff here 
} 

這將返回該錯誤:

Syntax error or access violation: 1064 

谷歌搜索之後,我已經試過沒有成功幾個解決方案,如使用query(),而不是​​

這只是發生在我使用IN()

$zip_codes_in_distance在這個郵編格式 '07110', '07109', '07050'

我在做什麼錯?

+1

見http://stackoverflow.com/questions/920353/php-pdo-can-i-bind-an-array-to-an-in-condition – FoolishSeth

+0

嗯,我沒有即使在輸入我的問題的標題時也能找到這個鏈接,謝謝,現在看看它。 – user1053263

+1

我遇到了類似的問題,並發現這個答案中的解決方案非常有用。 http://stackoverflow.com/a/1586650 – verisimilitude

回答

0

無法得到這個正確使用PDO工作,所以我用的MySQLi代替。 建立一個單獨的文件數據庫連接:

$Connect = new mysqli($host, DB_Username, DB_password, DB_Name); 

運行查詢是這樣的:

include 'DbConnectFIle.php'; 
$zips = "07110, 07109"; 
$sql = "SELECT * FROM table WHERE zip IN(".$zips.") "; 
     $result = $Connect->query($sql); 
     while($row = $result->fetch_assoc()){ 
        $MemberName = $row['first_name']; 
     } 
$Connect->close(); 

echo $MemberName; 

嘗試使用PDO四個小時,MySQLi的是我能得到它的工作的唯一途徑。 我用這個教程:http://codular.com/php-mysqli