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

PHPコードを使用してMySQLデータベースに画像をアップロードする方法

    まず、画像列がBLOBタイプであるかどうかを確認する必要があります

    あなたのSQLテーブルについては何も知りませんが、例として自分で作成しようとすると。

    フィールドidを取得しました (int)、 image (blob)および image_name (varchar(64))。

    したがって、コードは次のようになります(IDが常に「1」であると想定し、このmysql_queryを使用しましょう):

    $image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); //SQL Injection defence!
    $image_name = addslashes($_FILES['image']['name']);
    $sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')";
    if (!mysql_query($sql)) { // Error handling
        echo "Something went wrong! :("; 
    }
    

    あなたは多くの点でそれを間違っています。 mysql関数を使用しないでください-それらは非推奨です! PDO を使用します または MySQLi 。また、ファイルの場所をディスクに保存することも検討する必要があります。 MySQLを使用して画像を保存することは、BadIdea™と考えられています。画像などのビッグデータを含むSQLテーブルの処理には問題が発生する可能性があります。

    また、HTMLフォームが標準から外れています。次のようになります:

    <form action="insert_product.php" method="POST" enctype="multipart/form-data">
        <label>File: </label><input type="file" name="image" />
        <input type="submit" />
    </form>
    

    補足:

    ファイルを処理してBLOBとして保存する場合は、 mysql_real_escape_string() そうしないと、構文エラーが発生します。



    1. データモデラーの目で休日を表示する

    2. シーケンスのPostgreSQLの次の値?

    3. OracleとSQLServerのスペースの処理の違い

    4. verify_queryable_inventoryがORA-20008を返しました:タイムアウトしました