2017-08-31 10 views
-1

ニュースレターのスクリプトを作成したいと思います。 mysql_connectを使用するとニュースレターが機能します。受信した電子メールとリストされた電子メールのエコー文字列も機能します。 私はそれをPDOに翻訳したいと思っても、どんな電子メールも送信されていますし、文字列も表示されません。また、エラーメッセージも表示されません。 (ドイツ語の文字列)ニュースレターはmysql_connectで動作しますが、PDOでは動作しません

<?php 
mysql_connect('localhost', 'name', 'pw') 
or die ("Verbindung fehlgeschlagen"); 
mysql_select_db('***') 
or die ("Datenbank nicht gefunden"); 
$betreff = 'Newsletter'; 
$nachricht = 'Sehr geehrte/geehrter ##anrede## ##vorname## ##nachname##,' . "\n\n" . 
       'der neue Newsletter ist da.'; 
$header = 'FROM: [email protected]' . "\r\n" . 
      'Replay-To: [email protected]'; 

$sql = "SELECT * FROM newsletter"; 
$erg = mysql_query($sql); 

$sqlemail = "SELECT email FROM newsletter"; 

$result = mysql_query($sqlemail); 
while($row = mysql_fetch_object($result)) { 
    $email = $row->email; 
    foreach ($row as $email) { 
     mail($email, $betreff, $nachricht, $header); 
     echo "Email versendet an $email <br />"; 
    } 
} 
?> 


<?php 
$pdo = new PDO('mysql:host=localhost;dbname=***', 'name', 'pw'); 

$betreff = 'Newsletter'; 
$nachricht = 'Sehr geehrte/geehrter ##anrede## ##vorname## ##nachname##,' . "\n\n" . 
       'der neue Newsletter ist da.'; 
$header = 'FROM: [email protected]' . "\r\n" . 
      'Replay-To: [email protected]'; 

$sql = "SELECT * FROM newsletter"; 
$erg = mysql_query($sql); 

foreach ($pdo->query($sql) as $row) { 
    $email = $row['email']; 
    mail($email, $betreff, $nachricht, $header); 
    echo "Email versendet an $email <br />"; 
} 

?> 
+0

を、私はにmysql_connectに1つのページを持って、PDO – Alhevi

+1

のための別のは、私はあなたがPDOのチュートリアル/サンプルコードを読むことをお勧め、1人の明らかに不足しています実際に結果をフェッチする必要があるということです。 – ADyson

答えて

-1

pdo側でも、クエリをフェッチする必要があります。これを行う:

$ PDO->クエリ($ sqlを) - > fetchAllの()

+0

foreachに入れる必要がありますか? foreach($ pdo-> query($ sql) - > $行としての$ pdo-> query($ sql)) – Alhevi

+0

はい。私があなたに与えたものと置き換えてください – Akintunde007

+0

助けがあれば、私の答えに合格とマークしてください – Akintunde007

関連する問題