2016-05-04 10 views
0

file.pdf,のような名前の後に,という値を持つデータベースフィールドに値があります。私は爆発でそれを削除しようとしているが、データベースのこの行からpdfを読み込んで生成しようとするとエラーFPDF error: Unable to find pointer to xref tableが発生する... phpmyadminから手動でカンマを削除すると、すべてが完全に機能する。これは、私が爆発しようとしているソースの断片です...Explodeでデータベース内の値からコンマが削除されない

foreach($files as $file) { 

    $sql = "SELECT file FROM documents WHERE id = :id"; 
    $result = $pdo->prepare($sql); 
    $result->bindParam(":id", $file); 
    $result->execute();     

    $resArray = $result->fetchAll(); 

    foreach ($resArray as $res) 
    { 
     $items = explode(',', $res["file"]); 

     foreach ($items as $item) { 

      $pdf->addPDF($fileFolder.$item);    
     } 
     }   
} 
+0

'$のres'配列から指定されたデータのどのタイプ?また、 'foreach'関数を内部で実行することが可能であることも知りませんでした:P(' $ res配列 'に' 'do_print_rを実行してください) – Jek

+0

res配列はpdf文書を保持します。 'print_r($ res) - > 89b135b595e9224ceacaa470a1e5d5aa.pdf、' –

+0

'' str_replace( '、' res ''、 ''); ': ')を使用するだけです) – Jek

答えて

2

このコードではなく、それがセパレータとしてカンマを使用して複数の部分に文字列を分割し、コンマを除去しません。したがって、file.pdfの1つと空の1つの文字列(つまりコンマの後の部分が何もないため)と、foreachを使用して両方を繰り返しているため、addPDFを2回呼び出すことになります。おそらくエラーの原因)。

は何が必要このです:

foreach ($resArray as $res) 
{ 
    $pdf->addPDF($fileFolder . rtrim($res["file"], ",")); 
} 

rtrimが明示的に末尾の文字(ここではカンマ)を削除するために、ここで使用されています。最後のカンマを削除する

+0

はい、このように動作しています –

2

使用RTRIM($ RES [ "ファイル"]、 "")

関連する問題