如何从mysql中的单个字段中检索数据?

时间:2013-06-14 12:21:31

标签: php mysql

我正在尝试使用$keyword(关键字可以是问题字段中的任何内容)从MySql中的表中检索电子邮件地址以标识该行。我成功地通过下面的查询找到了我需要的行,但它返回整行,如何从行中提取电子邮件并将其存储为$email

查询:

$result = mysql_query("SELECT * FROM ask WHERE date = '$keyword' order by ask_id")
or die(mysql_error());

表格

  

| ask_id |商店| fname | lname |电子邮件|电话|城市|州| zip_code |问题| sku |日期|

4 个答案:

答案 0 :(得分:3)

只需选择所需的列email而不是全部*

$result = mysql_query("SELECT email FROM ask WHERE date = '$keyword' order by ask_id")

请注意,mysql_*函数已弃用,最好切换为mysqliPDO。因此,您将能够使用prepared statements并且您将避免任何mysql注入的风险,请在此处了解更多信息How can I prevent SQL injection in PHP?

答案 1 :(得分:1)

SELECT `email` FROM ask WHERE date = '$keyword' order by ask_id

请使用上面的代码。你的mysql语句中的SELECT * FROM...意味着选择所有内容。

答案 2 :(得分:0)

首先,强制性的mysql_ *命令已弃用,请勿使用它们,小猫会死亡,您的狗会被枪杀等等。有关详情,请参阅this question

如果您只想从MySQL数据库中检索一列,可以通过在SELECT之后指定列而不是星号来实现。所以你会得到如下查询:

SELECT email FROM ask WHERE date = '$keyword' order by ask_id

您可以在PHP代码中使用以下内容:

$result = mysql_query("SELECT email FROM ask WHERE date = '$keyword' order by ask_id")
or die(mysql_error());

while($row = mysql_fetch_assoc($result)) {
    var_dump($row);
}

重申一下,你不应该使用mysql_ *函数。有更好的替代品,详见上述问题。

答案 3 :(得分:0)

$ result = mysql_query(“SELECT columnName AS email FROM ask WHERE date ='”。$ keyword。“'ORDER BY ask_id”);
while($ row = mysql_fetch_assoc($ result)){
$行[ '电子邮件']; //这里用电子邮件做任何事...... }