I'm trying to traslate from mysqli to PDO this:
`$query = "SELECT * FROM email_list";
$result = mysqli_query($dbc, $query)
or die('Error querying database.');
while ($row = mysqli_fetch_array($result)){
$to = $row['email'];
$first_name = $row['first_name'];
$last_name = $row['last_name'];
$msg = "Dear $first_name $last_name,\n$text";
mail($to, $subject, $msg, 'From:' . $from);
echo 'Email sent to: ' . $to . '<br />';
}
mysqli_close($dbc);
by reading other questions, I tried this:
$sql = "SELECT * FROM email_list";
while ($row = fetch(PDO::FETCH_BOTH)){
$to = $row['email'];
$first_name = $row['first_name'];
$last_name = $row['last_name'];
$msg = "Dear $first_name $last_name,\n$text";
mail($to, $subject, $msg, 'From:' . $from);
echo 'Email sent to: ' . $to . '<br />';
}
$conn->exec($sql);
$conn = null;
but I got this error: Parse error: syntax error, unexpected '{' in C:\xampp\htdocs\sendemail.php on line 36.
UPDATE:
<?php
$from = 'elmer@makemeelvis.com';
$subject = $_POST['subject'];
$text = $_POST['elvismail'];
$servername = "localhost";
$username = "davide";
$password = "";
try {
$conn = new PDO("mysql:host=$servername;dbname=elvis_store", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully<br>";
}
catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
// $dbc = mysqli_connect('data.makemeelvis.com', 'elmer', 'theking', 'elvis_store')
// or die('Error connecting to MySQL server.');
// $sql = "SELECT * FROM email_list";
// while ($row = fetch(PDO::FETCH_BOTH))
// {
// $to = $row['email'];
// $first_name = $row['first_name'];
// $last_name = $row['last_name'];
// $msg = "Dear $first_name $last_name,\n$text";
// mail($to, $subject, $msg, 'From:' . $from);
// echo 'Email sent to: ' . $to . '<br />';
//
// }
$query = $conn->prepare("SELECT * FROM email_list");
$query->execute();
while($row = $conn->fetch(PDO::FETCH_BOTH)){
$to = $row['email'];
$first_name = $row['first_name'];
$last_name = $row['last_name'];
$msg = "Dear $first_name $last_name,\n$text";
mail($to, $subject, $msg, 'From:' . $from);
echo 'Email sent to: ' . $to . '<br />';
}
$conn->exec($sql);
$conn = null;
?>
Connected successfully
Notice: Undefined variable: dbc in C:\xampp\htdocs\study\ch03\final\makemeelvis\sendemail.php on line 47
Fatal error: Call to a member function prepare() on null in C:\xampp\htdocs\study\ch03\final\makemeelvis\sendemail.php on line 47
UPDATE 2:
I haven't this error anymore, but now the html page continue to load...without giving any error but also no message as "connected" or similar...
what i'm doing wrong?
thanks