How to Upload Files Into a MySQL Database Using PHP?

MYSQL is utilized for creating database for websites and web applications. With its amazing performance, dependability and usability, MySQL has become best database option for web applications. It is freely accessible and simple to install. When the user uploads a file and tap on the upload button, the data is submitted to the server. PHP now takes the file and saves it in a folder in the project. Afterwards, it saves the text in the database together with a link pointing to the image in the folder. Now the biggest question is that how to upload files to MySQL database using PHP? Let’s learn.

Phase 0: Creating A Database
The process of creating database is easy. One table with a Binary large object (BLOB) field for the file data and some fields for different pieces of information relating to the file:

1. CREATE TABLE `file` (
2. `id` Int Unsigned Not Null Auto_Increment,
3. `name` VarChar(255) Not Null Default Untitled.txt,
4. `mime` VarChar(50) Not Null Default text/plain,
5. `size` BigInt Unsigned Not Null Default 0,
6. `data` MediumBlob Not Null,
7. `created` DateTime Not Null,
8. PRIMARY KEY (`id`)
9. )

As you see, a file is stored by their, including the extension. We have the mime type, which is used to let the browser know what kinds of file are dealing with. us The size of the file in bytes. And finally the data itself, in a MediumBlob field.

Phase 1: Uploading The File
Now, there is need to get the file from the user. The table we designed does not want further information from the user. So, we will make this easy and create a HTML form with only a single "file" input field and a submit button:

1. <!DOCTYPE html>
2. <head>
3. <title>MySQL file upload example</title>
4. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
5. </head>
6. <body>
7. <form action="add_file.php" method="post" enctype="multipart/ form-data">
8. <input type="file" name="uploaded_file"><br>
9. <input type="submit" value="Upload file">
10. </form>
11. <p>
12. <a href="list_files.php">See all files</a>
13. </p>
Now look at the above mentioned code and you can see the third attribute of the <form> element, "enctype". This tells the browser how to send the form data to the server. As it is, when sending files, this require to be set to "multipart/form-data".
In the event that it is set any other way, or not set at all, your file is presumably not going to be transmitted accurately.

Phase 2: Add The File To The Database
As you can see in phase 1, we set the action property to "add_file.php". This is the file we are going to build it this phase of the process.

This file needs to check if a file has been uploaded, ensure that it was uploaded without errors, and add it to the database:

1. <?php
2. // Check if a file has been uploaded
3. if(isset($_FILES[uploaded_file])) {
4. // Make sure the file was sent without errors
5. if($_FILES[uploaded_file][error] == 0) {
6. // Connect to the database
7. $dbLink = new mysqli(, user, pwd, myTable);
8. if(mysqli_connect_errno()) {
9. die("MySQL connection failed: ". mysqli_connect_error());
10. }
12. // Gather all required data
13. $name = $dbLink->real_escape_string($_FILES[uploaded_file] [name]);
14. $mime = $dbLink->real_escape_string($_FILES[uploaded_file] [type]);
15.$data=$dbLink->real_escape_string(file_get_contents($_FILES [uploaded_file][tmp_name]));
16. $size = intval($_FILES[uploaded_file][size]);
18. // Create the SQL query
19. $query = "
20. INSERT INTO `file` (
21. `name`, `mime`, `size`, `data`, `created`
22. )
23. VALUES (
24. {$name}, {$mime}, {$size}, {$data}, NOW()
25. )";
27. // Execute the query
28. $result = $dbLink->query($query);
30. // Check if it was successful
31. if($result) {
32. echo Success! Your file was successfully added!;
33. }
34. else {
35. echo Error! Failed to insert the file
36. . "<pre>{$dbLink->error}</pre>";
37. }
38. }
39. else {
40. echo An error occurred while the file was being uploaded.
41. . Error code: . intval($_FILES[uploaded_file] [error]);
42. }
44. // Close the mysql connection
45. $dbLink->close();
46. }Now, using this summary as a guide, lets start writing our program.

Phase 3: Listing All Existing Files
So, now that here is few of files in our database, we have to make a list of files and link them so they can be downloaded:

1. <?php
2. // Connect to the database
3. $dbLink = new mysqli(, user, pwd, myTable);
4. if(mysqli_connect_errno()) {
5. die("MySQL connection failed: ". mysqli_connect_error());
6. }
8. // Query for a list of all existing files
9. $sql = SELECT `id`, `name`, `mime`, `size`, `created` FROM `file `;
10.$result = $dbLink->query($sql);
12.// Check if it was successful
13.if($result) {
14. // Make sure there are some files in there
15. if($result->num_rows == 0) {
16. echo <p>There are no files in the database</p>;
17. }
18. else {
19. // Print the top of a table
20. echo <table width="100%">
21. <tr>
22. <td><b>Name</b></td>
23. <td><b>Mime</b></td>
24. <td><b>Size (bytes)</b></td>
25. <td><b>Created</b></td>
26. <td><b>&nbsp;</b></td>
27. </tr>;
29. // Print each file
30. while($row = $result->fetch_assoc()) {
31. echo "
32. <tr>
33. <td>{$row[name]}</td>
34. <td>{$row[mime]}</td>
35. <td>{$row[size]}</td>
36. <td>{$row[created]}</td>
37. <td><a href=get_file.php? id={$row[id]}>Download</a></td>
38. </tr>";
39. }
41. // Close table
42. echo </table>;
43. }
45. // Free the result
46. $result->free();
50. echo Error! SQL query failed:;
51. echo "<pre>{$dbLink->error}</pre>";
54.// Close the mysql connection

Phase 4: Downloading A File
To truly see how this functions, you should see how your browser downloads documents. When a browser asks for a file from an HTTP server, the server reaction will incorporate information on what precisely it contains. These bits of information are called headers. The headers ordinarily incorporate information on the sort of data being sent, the size of the reaction, and in case of files, the name of the file.

Now, this code. We begin simply by reading the ID sent by the link in phase 3. If the ID is valid, we fetch the information on the file whose ID we received, send the headers, and finally send the file data:

1. <?php
2. // Make sure an ID was passed
3. if(isset($_GET[id])) {
4. // Get the ID
5. $id = intval($_GET[id]);
7. // Make sure the ID is in fact a valid ID
8. if($id <= 0) {
9. die(The ID is invalid!);
10. }
11. else {
12. // Connect to the database
13. $dbLink = new mysqli(, user, pwd, myTable );
14. if(mysqli_connect_errno()) {
15. die("MySQL connection failed: ". mysqli_connect_error ());
16. }
18. // Fetch the file information
19. $query = "
20. SELECT `mime`, `name`, `size`, `data`
21. FROM `file`
22. WHERE `id` = {$id}";
23. $result = $dbLink->query($query);
25. if($result) {
26. // Make sure the result is valid
27. if($result->num_rows == 1) {
28. // Get the row
29. $row = mysqli_fetch_assoc($result);
31. // Print headers
32. header("Content-Type: ". $row[mime]);
33. header("Content-Length: ". $row[size]);
34. header("Content-Disposition: attachment; filename =". $row[name]);
36. // Print data
37. echo $row[data];
38. }
39. else {
40. echo Error! No image exists with that ID.;
41. }
43. // Free the mysqli resources
44. @mysqli_free_result($result);
45. }
46. else {
47. echo "Error! Query failed: <pre>{$dbLink- >error}</pre>";
48. }
49. @mysqli_close($dbLink);
50. }
52.else {
53. echo Error! No ID was passed.;

Final Words
So, you can see file uploading process is not complex as we think. Simply think about the above-mentioned steps, and you can easily upload any kind of file in Mysql database using PHP.

Author bio: Morris Edwards is Web developer & Marketing strategist at Awebstar - A leading  web design & development company in singapore. They have built over 400+ Professional & ecommerce websites for their worldwide clients.

A Look At The HostGator Web Hosting Service

A Look At The HostGator Web Hosting Service

The HostGator web hosting company has a reputation within the industry for providing best hosting services. It has specialized in reseller and budget products that enable the operatives to increase the profitability of their businesses. The organization was started in 2002 and was primarily based in Dallas within Texas, USA. Their hosting is undertaken primarily from the jurisdiction but they have an international perspective. The support network is particularly effective and they offer different options for their clients. Their reputation within the industry is virtually unmatched. Nevertheless you have to be prepared to pay that little bit extra in order to get the service. 

The Site Builder is a great bit of help to the users who are not experienced in the more technical aspects of their work. According to an Independent Review Panel, this was as good as it gets in terms of budget hosting.

Services: The HostGator web hosting service enables the client to transfer lots of data within the month. The support network is provided on a 24/7 basis and there are multiple channels for the purposes of communication. A strong network means that this service can help even larger businesses to improve their competitiveness. If you want to make use of the site builder then you have to pay a bit more. It uses the Red Hat Linux 9 platform which is great for handling large volume transactions. There is a stepped series of categorized services that start at Budget. They then move on to Dedicated Servers and Reseller products. You will not be short of web space if you decide to use this product. The critical elements in the delivery include template designs, an ENOM domain reseller account and WHM Auto-Pilot billing managers. There are no restrictions on the amounts of principal domains and subdomains that you can use.

The MySQL database is expansive. It perfectly complements the CRON, PHP 4.3.1 service as well as the Curl facilities. There is the GD. Spam Assassin which is useful if you want to control the amount of communication which is available to you. Finally you get RV-Skin and Fantastico perks. A C-Panel is used to control the operations of your business. The action list includes the DOT Project, Master Flex, PHP-Auction and Nucleus. You also get the OS-Ticket and the Coppermine Photo Gallery. A multi-language platform improves the international credentials of this product. You get a multi-theme skin management software package which is particularly effective. The customization model improves the usefulness of system. The usage policy is somewhat restrictive. For example you are required to pay an extra $2 in order to gain access to the site builder. That figure is attached to every single website. However a non-reselling account can use this service for free. The confusion is not helpful.

Pros: We love the email ticket service. Other communication perks include the instant messenger and toll free phone service. The members of the team are very conversant with the technical details.

Cons: There is absolutely no reason why anyone should pay extra in order to enjoy the privilege of the site builder. The company has lost a step in terms of giving flexibility to consumers.

Rating: The HostGator web hosting service gets 4 stars out of 5. They could get more if there is a coherent pricing strategy.

Jonathan Griffin is the editor of Best Host News, a site dedicated to reporting on web hosting related consumer news. He is particularly keen to provide a place where people can find honest and up to date information on hosting providers.

How To Connect To Mysql Database In VB.NET

hello guys , i will tell you just how to connect to mysql database in . we all know that mysql is one of the bets RDBMS which means relational database management system shortly we say DBMS which means database management system . ok now first all you need to do these things
  1. you need mysql server and mysql connector
  2. you need to add the reference mysql & mysql connector

after that with this codes you can connect to the mysql database

Imports MySql.Data.MySqlClient
Public Class form1

    'Author : Mohamed Shimran
    'Blog :

    Private mysql_connect As New MySqlConnection
    Private Sub connect_mysql()
        Dim db_name As String = "Database Name"
        Dim db_host As String = "Database Host"
        Dim username As String = "Database Username"
        Dim password As String = "Database Password"

        If Not mysql_connect Is Nothing Then mysql_connect.Close()
        mysql_connect.ConnectionString = String.Format("server={0}; user id={1}; password={2}; database={3}; pooling=false", db_host, username, password, db_name)

        Catch ex As MySqlException
            MsgBox("Connecting To Database Error:[" & ex.Message & "]")
        End Try
    End Sub
End Class

replace Database Name with your database name
replace Database Host with your database host
replace Database Username with your mysql database username
replace Database Password with your mysql database password

now debug your program if you didn't get any errors your successfully connected to your database.