php - 选择使用电子邮件地址

标签 php mysql sql

我正在使用带有 PDO 的 PHP

尝试使用电子邮件作为键从表中检索记录。当在sql语句中直接给出email时,它工作正常,

但是当我在“$bio_email”字段中发送电子邮件时,它不起作用。表中的电子邮件字段类型为“varchar”

我尝试了多种选择,但都没有效果。系统返回的错误在sql语句的右侧

这是我的代码

$bio_email      = $applicantinfo->user_email; // email from a table
$sql = "SELECT * FROM tb_files_upload WHERE ";
$sql .= " email = 'applicant1@live.ca' "; // THIS WORKS FINE
//$sql .= " email = 'danilo.gonzalez@parkinson.ca' "; // THIS WORKS FINE
//$sql .= " email = $bio_email "; // DOES NOT WORK  ... syntax to use near '@live.ca' at line 1
//$sql .= " email = {$bio_email} "; // DOES NOT WORK  ... syntax to use near '@live.ca' at line 1
//$sql .= " email = '{$bio_email}' "; // DOES NOT WORK ... syntax to use near ''applicant1@live.ca'' at line 1
//$sql .= " email = '$bio_email' "; // DOES NOT WORK ... syntax to use near ''applicant1@live.ca'' at line 1

$biosketchs = Tb_Files_Upload::find_by_sql($sql);

同样在同一个表中,我有一个字段“dateReceived”。我想要 2.5 年前的记录。你能帮我解决这个问题吗?

最佳答案

我会努力

$sql .= " email = '$bio_email' ";

对于 dateReceived,只有 DATE_SUB 月份,以及里面的年份。

dateReceived >= DATE_SUB(DATE_SUB(CURDATE(), INTERVAL 6 MONTH), INTERVAL 2 YEAR)

要不咱们别傻了,直接用18个月

$sql.= " AND dateReceived >= DATE_SUB(CURDATE(), INTERVAL 18 MONTH)";

关于php - 选择使用电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17703950/

相关文章:

c# - 在 Azure Functions v2 上使用 MySqlDatabase (MySql.Data.MySqlClient) - "Unable to resolve service"

mysql - 使用 case 语句 mysql 添加日期间隔

php - if 语句检查现有条目是否在数据库中

java - 将行添加到现有 Java 表结果

mysql - 将一个表复制到另一个表并添加一个作为源表名的列

php - Authorize.net SIM 接收数据并更新数据库

php - 计算一个帖子有多少条评论 - Laravel 5.2

php - MySQL:Sum () 和 Count 在一个查询中?

php - 反序列化时 Laravel 通知失败

mysql - SQL 查询返回一列 "grouped"另一列的三个最高值