I am trying to read and write to a database. Here is the code I have so far:
$mysql = mysqli_connect("example.com", "johndoe", "abc123"); // replace with actual credidentials $sql = "CREATE DATABASE IF NOT EXISTS dbname"; if (!mysqli_query($mysql, $sql)) { echo "Error creating database: " . mysqli_error($mysql); } if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } mysqli_close($mysql); $mysql = mysqli_connect("example.com", "johndoe", "abc123", "dbname"); // replace with actual credidentials $sql = "CREATE TABLE IF NOT EXISTS Users(ID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(ID), username CHAR(15), password CHAR(15), email CHAR(50))"; if (!mysqli_query($mysql, $sql)) { echo "Error creating table: " . mysqli_error($mysql); } $sql = "INSERT INTO Customers(username, password, email) VALUES(" . $username . ", " . $password . ", " . $email . ")"; if (!mysqli_query($mysql, $sql)) { echo "Error: " . mysqli_error($mysql); } mysqli_close($mysql);
However, when I try to run it, it has an error:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' , )' at line 1
Could anybody tell me how to fix this?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Please check syntax of mysqli, it takes 4 parameters.You also have to provide database name.
$link = mysqli_connect("myhost","myuser","mypassw","my_db");
Method 2
First check mysqli_select_db
if it returns false then create database.
try like this:
$mysql = mysqli_connect("example.com", "johndoe", "abc123") or die(mysqli_connect_error()); // replace with actual credidentials if (!mysqli_select_db($mysql,'hardestgame_accounts')) { $sql = "CREATE DATABASE IF NOT EXISTS hardestgame_accounts"; if (!mysqli_query($mysql, $sql)) { echo "Error creating database: " . mysqli_error($mysql); } } if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $sql = "CREATE TABLE IF NOT EXISTS Users(ID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(ID), username CHAR(15), password CHAR(15), email CHAR(50))"; if (!mysqli_query($mysql, $sql)) { echo "Error creating table: " . mysqli_error($mysql); } mysqli_close($mysql);
here is a good answer: Php mysql create database if not exists
Method 3
You’re missing database in mysqli_connect() call
$link = mysqli_connect("hostname","username","password","database") or die("Error " . mysqli_error($link));
Method 4
Try using mysql_select_db
in between the database connection and the table creation.
Also, mysql_
is deprecated, please use mysqli_
instead
Method 5
Obviously the answer is in your error. You didn’t select any database. When using this function mysqli_connect specify the database you want to connect to.
Here is the syntax of the function: http://www.w3schools.com/Php/func_mysqli_connect.asp .
1) Create your database outside of your application
2) Specify mysqli_connect with the database you want to select.
You can also use another function called mysqli_select_db . You can find the sytanx here : http://www.w3schools.com/php/func_mysqli_select_db.asp .
As already stated in the comment, you will also have to replace : “example.com” with your ip address, if you are running locally replace it with 127.0.0.1:3306 , if you didn’t change the port when you installed your mysql database / “johndoe” with your database account, you can change that to “root” / “abc123” with your root account password DEFAULT : “” .
Good luck !
Method 6
Use ` backticks for MYSQL reserved words…
your table name is reserved word for MYSQL…
Change your table name.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0