2014-01-28 33 views
0

是否可以檢查變量是否在SQL表中?如果變量在SQL表中

例如,如果我想檢查「馬鈴薯」是否在「veg」表中?

$search = $_POST['search_input'] (potato) 
+0

使用WHERE子句,例如其中vegname = '馬鈴薯'; – user1844933

+0

嘗試使用帶有條件的select查詢,如果得到的結果當然是在表中,如果沒有得到結果,則表示沒有可用的行包含您在問題中指定的術語。 – Nico

+0

恥辱,沒有人拿起土豆是根不是素食者:D – Night

回答

1

使用PHP的mysql_方法,你可以做這樣的:

$sql = "SELECT COUNT(*) count FROM veg WHERE name = 'potato'"; 
$result = mysql_query($sql) or die('error'); 
$row = mysql_fetch_assoc($result); 
if($row['num']) { 
    echo 'vegetable exists'; 
} 

這只是給你一個想法,它是如何工作的。如果你想(你應該,因爲mysql_已被棄用)使用PDO或mysqli查詢保持不變。


PDO實例

$vegetable = 'potato'; 
$stmt = $conn->prepare('SELECT 1 FROM veg WHERE name = :name'); 
$stmt->bindParam(':name', $vegetable, PDO::PARAM_STR); 
$stmt->execute(); 
$row = $stmt->fetch(PDO::FETCH_ASSOC); 

if($row) { 
    echo 'vegetable exists'; 
} 
+0

** MySQL _ ***是貶值的,你不應該推薦它。 – Styphon

+0

你說得對。我已經編輯了答案來說明這一點。 – ManiacTwister

+0

謝謝!這是我正在尋找的東西(檢查變量是否在表格中) – Night

0

使用土豆在WHERE子句:

Select * from veg where name='potato'; 

如果你想查詢某人的輸入,使用SELECT * FROM veg WHERE name='$search'

不過要注意mysql注入

2

你可以這樣做

CREATE TABLE veg(veg_items CHAR(30)); 

INSERT INTO veg VALUES('potato'),('Redish'),('Ginger'); 

SELECT veg_items FROM veg WHERE veg_items = 'potato'; 
+-----------+ 
| veg_items | 
+-----------+ 
| potato | 
+-----------+ 
1 row in set (0.00 sec) 
0

嘗試PDO語句對於這類查詢的..因爲這樣的查詢更容易SQL注入。

嘗試下面

$sth = $dbh->prepare('SELECT count(*) FROM veg  WHERE name =:name '); 
$sth->execute(array('potato')); 
$ret = $sth->fetchAll();