Php 使用where子句从mysql表中获取数据

Php 使用where子句从mysql表中获取数据,php,mysql,sql,Php,Mysql,Sql,我在表中有类别我想选择类别为Sales的数据我正在使用以下查询 $query = mysql_query("SELECT * FROM catalog_Master where category=@"Sales""); 用单引号将其括起来,因为它是一个字符串 $query = mysql_query("SELECT * FROM catalog_Master where category='Sales'"); 根据您的评论,如果希望从变量中获取值 $category="Sales"; $qu

我在表中有类别我想选择类别为Sales的数据我正在使用以下查询

$query = mysql_query("SELECT * FROM catalog_Master where category=@"Sales"");

用单引号将其括起来,因为它是一个字符串

$query = mysql_query("SELECT * FROM catalog_Master where category='Sales'");
根据您的评论,如果希望从变量中获取值

$category="Sales";
$query = mysql_query("SELECT * FROM catalog_Master where category='$category'");
作为旁注,如果变量的值来自外部,则查询易受攻击。请看下面的文章,了解如何预防它。通过使用
PreparedStatements
可以避免在值周围使用单引号


如果双引号完全匹配,也要小心:

$query = mysql_query("SELECT * FROM catalog_Master where category='Sales'");

这应该是可行的,如果您使用PDO或MySQLi,那么它是好的。如果您使用的是PHP5.5中的函数,那么使用PDO,如果我想在var中给出它,那么如何给出这样或那样的$category=“Sales”呢?如何使用url调用这个页面?lie mypage.com/catalog.php?category=?如果我想发布category
$category=$\u GET[“category”]
的话,如果您的url是“http://mypage.com/catalog.php?category=sales”+1,那么它将返回“sales”,用于提及PDO、SQL注入。回答得好!请加上解释。没有解释的答案几乎不是答案。另外:从PHP5.5开始,mysql_*就被弃用了。这与我的答案有什么不同<代码>:D我有更新说明,请检查。我仍然看不到说明。。。然而,至少mysqli_在那里。
<?PHP
$query = mysql_query("SELECT * FROM catalog_Master WHERE category='Sales'");
?>
**EDIT**

**PHP 5.5 way**

$mysqli = new mysqli("localhost", "db_user", "db_password", "db_name");
$result = $mysqli->query("SELECT * FROM catalog_Master WHERE category='Sales'");