I am changing all my queries that are using PHP MySQL to MySQLi.
I have made a file called db.php with the connection settings.
The file includes
<?php $db = new mysqli('localhost','mysqlusername','mysqlpassword'); echo "<h1>Success database connection</h1>"; if($db->connect_errno > 0) { die('No connection [' . $db->connect_error . ']'); } ?>
I include the file with:
require_once "/location/db.php";
after that i use:
if($db->connect_error) { echo "Not connected, error: ".$db->connect_error; } else { echo "Connected."; }
It echo’s Connected so I assume my connection is good.
I have 3 PHP variables which I want to insert in my database table Code
I first echo the variables so I am sure they have content.
After I validated my connection is alright (returned Connected) and echoing the content of the variables I want to do the query with:
$sql = "INSERT INTO 'Code' (`Name`, `Code`, `Admin`) VALUES ('$name', '$code', '$admin')"; echo $sql;//show query // Performs the $sql query on the server to insert the values if ($db->query($sql) === TRUE) { echo 'User Created.'; } else { echo 'Errorcreating : '. $db->error; }
I get the message Errorcreating : No database selected
I have the echo $sql to show me the query.
If I copy the query directly in SQL it works like it should.
This is my first time on MySQLi so it’s possible I made a very dumb mistake but I can’t find it.
Advertisement
Answer
When opening the connection you can pass the database name as a 4th parameter:
$db = new mysqli('localhost','mysqlusername','mysqlpassword','database');
Also, your escape character is wrong. Don’t use single quotes around table names, use backtick operator instead
$sql = "INSERT INTO `Code` (`Name`, `Code`, `Admin`)VALUES ('$name', '$code', '$admin')";