Reputation: 33
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
Reputation: 1
check your brackets { insert code here } if this thing is not arranged properly it brings out an error
Upvotes: -1
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
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