【发布时间】:2023-03-16 20:13:01
【问题描述】:
我有一个 csv 文件,我通过将它存储在一个数组中来解析和显示它。我想知道如何在将邮件插入 mysql 之前验证邮件或确保其格式正确?而且,如果邮件没有被验证,它应该显示一个错误并且不将该行插入到 mysql。
我知道我可以使用 filter_var($email, FILTER_VALIDATE_EMAIL) !== false;,但我不确定如何在我的代码中使用它,因为它位于数组中(电子邮件的值)。任何帮助表示赞赏。
我的代码:
<?php
require "database.php";
$lines = file('users.csv', FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
$csv = array_map('str_getcsv', $lines);
$col_names = array_shift($csv);
$users = [];
try {
$stmt = $dbh->prepare("INSERT INTO users(name, surname, email)
VALUES(:name, :surname, :email)");
foreach($csv as $row) {
$users[] = [
$col_names[0] => ucfirst(strtolower($row[0])),
$col_names[1] => ucfirst(strtolower($row[1])),
$col_names[2] => strtolower(strtolower($row[2])), //that's the mail
];
$stmt->bindValue(':name', $col_names[0], PDO::PARAM_STR);
$stmt->bindValue(':surname', $col_names[1], PDO::PARAM_STR);
$stmt->bindValue(':email', $col_names[2], PDO::PARAM_STR);
$stmt->execute();
}
}catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$dbh = null;
?>
【问题讨论】:
-
五月this帮你
标签: php mysql validation email