我正在尝试编写代码,使用PHP将表单和上传文件中的数据上传到服务器路径。在这个我能够实现上传文件和数据的功能,但在此我想添加一个功能,如果电子邮件已经存在,那么应该抛出“电子邮件已经存在”并且应该接受pnly pdf文件的警告。我尝试了一些编码,但它不起作用。
任何大师都可以在下面的代码中添加代码块,以实现唯一的电子邮件ID功能,并将文件类型限制为仅pdf。
[
{
"movieID":1,
"title":"13",
"type":"DIGITAL",
"status":"COMING SOON",
"synopsis":null,
"director":null,
"mRating":"G",
"casts":null,
"showTimes":null,
"reviews":null,
}
]
答案 0 :(得分:0)
尝试将代码更改为
$sql = "SELECT COUNT(*) AS count from tbl_uploads where email = :email_id";
try {
$stmt = $DB->prepare($sql);
$stmt->bindValue(":email_id", $email, PDO::PARAM_STR);
$stmt->execute();
//only grabbing one row so use fetch instead of fetchAll
$result = $stmt->fetch(PDO::FETCH_ASSOC);
/*
*check if result is an array
*check is count exists in the array
* check if result['count'] gt 0
*/
if (is_array($result) && array_key_exists('count', $result) && $result["count"] > 0) {
$msg = "Email already exist";
$msgType = "warning";
}
答案 1 :(得分:0)
计算行的方法有很多,在您的情况下更改为:
$stmt->execute();
$result = $stmt->fetchAll();
if (count($result) > 0) {
$msg = "Email already exist";
$msgType = "warning";
}
或使用fetch()
$stmt->execute();
if ($stmt->fetch()) {
$msg = "Email already exist";
$msgType = "warning";
}
或不提取:
$stmt->execute();
if ($stmt->rowCount() > 0) {
$msg = "Email already exist";
$msgType = "warning";
}
或者因为PHP
是松散类型的,你可能只需将它强制转换为整数:
if ((int)$result[0]["count"] > 0)