sql >> Database teknologi >  >> RDS >> Mysql

Sådan uploades billeder til MySQL-databasen ved hjælp af PHP-kode

For det første bør du kontrollere, om din billedkolonne er af typen BLOB !

Jeg ved ikke noget om din SQL-tabel, men hvis jeg vil prøve at lave min egen som et eksempel.

Vi har felter id (int), image (blob) og image_name (varchar(64)).

Så koden skulle se sådan ud (antag, at ID altid er '1', og lad os bruge denne 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! :("; 
}

Du gør det forkert på mange måder. Brug ikke mysql-funktioner - de er forældede! Brug PDO eller MySQLi . Du bør også tænke på at gemme filernes placering på disken. Brug af MySQL til lagring af billeder menes at være Bad Idea™. Håndtering af SQL-tabel med big data som billeder kan være problematisk.

Også din HTML-formular er ude af standarder. Det skulle se sådan ud:

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

Sidenote:

Når du håndterer filer og gemmer dem som en BLOB, skal dataene escapes ved hjælp af mysql_real_escape_string() , ellers vil det resultere i en syntaksfejl.



  1. Omdøb en tabel i SQL Server (T-SQL)

  2. Sikkerhedskopier dine MySQL-databaser

  3. Hvordan indlæses en XML-fil i en database ved hjælp af en SSIS-pakke?

  4. ISJSON() Eksempler i SQL Server (T-SQL)