[英]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.