2012-09-17 56 views
3

我是新來的PDO,我想知道如果有一個相當於檢查一個MySQL聲明,如果一個參數不爲空,如:PDO和IS NOT NULL功能

SELECT * FROM table 
WHERE param IS NOT NULL 

我嘗試這樣做:

$pdo->prepare('SELECT * FROM ' . $tablename . ' WHERE ' . $field . ' = :' . $field . 'AND param IS NOT NULL'); 

沒有任何成功。 我也在網上看,但沒有發現任何相關的,任何人都可以幫忙嗎?

+3

您需要你的AND之前的空格(所以'AND'''不是''AND ...'')。 – Crontab

+0

謝謝我沒有注意到要麼... – AKFourSeven

回答

2

您可以使用PDO的任何查詢,你可以在mysql中直接使用,但你這樣做是戰勝擺在首位使用PDO的目的的方式,你應該短語查詢作爲

$q = $pdo->prepare("SELECT * FROM $tablename WHERE field = :field AND param IS NOT NULL"); 
$q->execute(array('field' => $field)); 
+1

謝謝,這也是我用過的,事實上這個問題在別的地方說謊,param沒有設置爲NULL值=>小學生錯誤! – AKFourSeven

+1

所有類型的奇怪東西都會發生,請多注意錯誤信息,爲您正在使用的所有內容(php,mysql等)設置日誌,以及在某些事情不起作用時查看日誌的尾部。 – xception

-1

是...

$sql = "SELECT * FROM `tablename` WHERE :field IS NOT NULL"; 
$stmt = $pdo->prepare($sql); 
$stmt->bindParam(':field', $field); 

...你要找的是什麼?

+3

我幾乎肯定你不能綁定一個字段名,只是值。編寫的語句需要預定義的表和字段名稱。 – xception