我正在尝试使用$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 |日期|
答案 0 :(得分:3)
只需选择所需的列email
而不是全部*
$result = mysql_query("SELECT email FROM ask WHERE date = '$keyword' order by ask_id")
请注意,mysql_*
函数已弃用,最好切换为mysqli
或PDO
。因此,您将能够使用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)){
$行[ '电子邮件']; //这里用电子邮件做任何事......
}