微擎pdo_fetchall中使用in 查詢

問題php

有時候咱們須要使用MySQL中的in()查詢,在微擎中,由於有pdo_系列方法,通常來講,想固然的會像下面這種方式使用:fetch

$ids_string = '1,2,3'; pdo_fetchall("select * from ".tablename('demo_table')." where uniacid=:uniacid and id in (:id)", array(':uniacid'=>$_W['uniacid'], ':id'=>$ids_string));debug

可是當你運行後,會發現,查詢是沒有結果的,不管是使用pdo_debug()方法查看過程,都是沒有問題的,甚至把打印出來的SQL語句放到phpmyadmin或者MySQL終端下運行,都是能夠正常執行的。 方法ci

我想這裏應該是使用PDO預處理語句時出現問題了,具體的代碼沒有查看,這裏只是記錄下遇到這個問題的解決方法,仍是和上面的代碼功能同樣,只需改動綁定方式便可。以下:pdo

$ids_string = '1,2,3'; pdo_fetchall("select * from ".tablename('demo_table')." where uniacid=:uniacid and id in ($ids_string)", array(':uniacid'=>$_W['uniacid']));string

如今運行就能夠了,就是將in的內容直接賦值,而不是預加載綁定。table

注意:若是你的pdo_fetchall()方法裏用的不是雙引號,在直接輸入變量時請使用」.$ids_string.」方式。變量

相關文章
相關標籤/搜索