簡體   English   中英

如果變量在SQL表中

[英]If variable is in SQL Table

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

例如,如果我想檢查“土豆”是否在“蔬菜”表中?

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

你可以這樣

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)

使用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';
}

WHERE子句中使用馬鈴薯:

Select * from veg where name='potato';

如果要檢查某人的輸入,請使用SELECT * FROM veg WHERE name='$search'

雖然提防mysql注入

對於此類查詢,請嘗試使用PDO語句..因為此類查詢更易於進行SQL注入。

嘗試下面

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM