【发布时间】:2015-07-11 19:42:15
【问题描述】:
我正在尝试向组级别为 4 或 5 的用户发送电子邮件。我在“用户”表中区分了组级别。我正在尝试获取“组”级别为 4 或 5 的用户的电子邮件和“名字”。然后使用该电子邮件和名字来创建变量并将其用于我的电子邮件。
我的 SQL 语句结构是否不正确?我没有收到任何错误。
我苦苦挣扎的领域是这些线。
if($sql_email = "SELECT 'email' FROM 'users' WHERE 'group' = 4 AND 5") {
$email = $con->query($sql_email);
} else {
echo "Query not working right";
}
$sql_name = "SELECT 'firstname' FROM 'users' WHERE 'group' = 4 AND 5";
$admin_name = $con->query($sql_name);
更多代码展示我如何使用它
ini_set('display_errors', 1);
error_reporting(E_ALL);
//User Request Email that goes to the commissioner and creator
if(isset($_POST['submit'])) {
$con = mysqli_connect("localhost","root","","db");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if($sql_email = "SELECT 'email' FROM 'users' WHERE 'group' = 4 AND 5") {
$email = $con->query($sql_email);
} else {
echo "Query not working right";
}
$sql_name = "SELECT 'firstname' FROM 'users' WHERE 'group' = 4 AND 5";
$admin_name = $con->query($sql_name);
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$username = $_POST['username'];
$to = $email;
$subject = 'There is a new user request to join the SFL';
$message = '
<html>
<head>
<title>New SFL User Request</title>
</head>
<body>
<p>Hi '.$admin_name.',</p><br>
<p>Thank you for wanting to join the!</p>
<p>Thank you,</p>
<p>Administration</p>
</body>
</html>
';
$from = "user-requests@example.com";
$Bcc = "user-requests-confirm@example.com";
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'To: ' .$to. "\r\n";
$headers .= 'From: ' .$from. "\r\n";
$headers .= 'Bcc: '.$Bcc. "\r\n";
// Send the email
mail($to,$subject,$message,$headers);
}
更新
$sql_email = "SELECT `email` FROM `users` WHERE `group` = 4 OR `group` = 5";
$email = $con->query($sql_email);
if( ! $con->query($sql_email) )
echo "Query not working right";
$sql_name = "SELECT `firstname` FROM `users` WHERE `group` = 4 OR `group` = 5";
$admin_name = $con->query($sql_name);
我得到这个错误.. 可捕获的致命错误:无法将类 mysqli_result 的对象转换为第 219 行 /home4/db/public_html/example.com/register.php 中的字符串
第 219 行是这个...
<p>Hi '.$admin_name.',</p><br>
【问题讨论】:
-
除了代码之外,如果您要查询用户输入到您的数据库中,请不要使用 mysql 查询。使用 PDO 并将变量绑定为参数。虽然 mysqli 比使用 mysql() 函数更好,但 PDO 更安全。
-
PDO究竟比Mysqli更安全?