sql >> データベース >  >> RDS >> Mysql

画像をBLOBフィールドにアップロードしようとしたときにSQL構文でエラーが発生しました

    画像コンテンツをエスケープする必要があります。

    これを実現するには、さまざまな方法があります。

    1)使用しているPHPのバージョンがPHP 5.5よりもマイナーな場合は、「mysql_real_escape_string」関数を使用できます。

    $query="INSERT INTO records VALUES('','$name','$pname','$email','$phone','$cost','$des','$category','$date','" . mysql_real_escape_string($imagedata) ."');";
    

    2)「base64_encode」関数を使用して画像コンテンツをエンコードします。コンテンツをbase64にエンコードするとファイルサイズが大きくなりますが、非常に安全に使用できます。

     $query="INSERT INTO records VALUES('','$name','$pname','$email','$phone','$cost','$des','$category','$date','" . base64_encode($imagedata) ."');";
    

    ファイルを読み取ったりダウンロードしたりする場合は、「base64_decode」関数を使用してコンテンツをデコードすることを忘れないでください。

    3)「addslashes」関数を使用して二重引用符と一重引用符をエスケープします

     $query="INSERT INTO records VALUES('','$name','$pname','$email','$phone','$cost','$des','$category','$date','" . addslashes($imagedata) ."');";
    

    「stripslashes」機能を使用して画像を読み取ったりダウンロードしたりするときは、必ずスラッシュを削除してください。




    1. 動的注文方向

    2. SQLサーバースキーマとデフォルトスキーマ

    3. mySql:セル内の単語数(コンマで区切られた文字列)が一致したセルと同じ値を持つ行を取得します

    4. カウント操作の結果としてテーブルを作成するSQLステートメント?