Carlos Dams
Carlos Dams

Reputation: 33

How to insert data to columns from PHP into MariaDB?

I am familiar with MySql databases but there is this new database called MariaDB. I try to insert data there from PHP code and I can't, so can you help me insert the data? My PHP on the server is 5.4.32 and my MySQL version is 10.0.20-MariaDB-cll-live.

This is the code that I am using to try to insert data into MariaDB.

$connection = mysql_connect("localhost", "root", ""); // Establishing Connection with Server
$db = mysql_select_db("database", $connection); // Selecting Database from Server

if(isset($_POST['submit'])){ // Fetching variables of the form which travels in URL
    $name = $_POST['name'];
    $email = $_POST['email'];
    if($name !=''||$email !=''){
       //Insert Query of SQL
       $query = mysql_query("insert into VIP Membership(Name, Email) values ('$name', '$email')");
       echo "<br/><br/><span>Data Inserted successfully...!!</span>";
    }
    else{
       echo "<p>Insertion Failed <br/> Some Fields are Blank....!!</p>";
    }
}

mysql_close($connection); // Closing Connection with Server

EDIT: I used the mysqli code now but it throws me an error 500.

<?php
$servername = "localhost";
$username = "username";
$password = "";
$dbname = "db_table";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
if(isset($_POST['submit'])){ // Fetching variables of the form which travels in URL
$name = $_POST['name'];
$email = $_POST['email'];
if($name !=''||$email !=''){

$sql = "INSERT INTO 'VIP Membership' (Name, Email)
VALUES ('$name', '$email')";

if(mysqli_query($conn, $sql)) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
}

mysqli_close($conn);

Upvotes: 3

Views: 14498

Answers (3)

Kev MN
Kev MN

Reputation: 1

check your brackets { insert code here } if this thing is not arranged properly it brings out an error

Upvotes: -1

gen_Eric
gen_Eric

Reputation: 227270

You need to use backticks (not single quotes) to surround your table name, since it has a space in it.

$sql = "INSERT INTO `VIP Membership` (Name, Email) VALUES ('$name', '$email')";

UPDATE: You should really be using prepared statements. As it stands, this code is very unsafe.

$sql = mysqli_prepare($conn, "INSERT INTO `VIP Membership` (Name, Email) VALUES (?, ?)");
if($sql !== FALSE){
    mysqli_stmt_bind_param($sql, "ss", $name, $email);
    if(mysqli_stmt_execute($sql)){
        echo "New record created successfully";
    } else {
        echo mysqli_stmt_error($sql);
    }
} else{
    echo mysqli_error($conn);
}

Upvotes: 7

sotoz
sotoz

Reputation: 3098

MariaDB is a backward compatible, binary drop-in replacement of MySQL. That means MariaDB version will work exactly like MySQL. You don't have to do anything specific to make your MySQL code to work on MariaDB. But in your code I would use the mysqli function (or PDO) instead of the old deprecated mysql one.

As you may encounter some incompatibilities you can check this official document for differences between the two. MariaDB vs MySQL

Upvotes: 1

Related Questions