user2983071
user2983071

Reputation: 43

PHP MySQL Inserting data in a database table using PHP script

Using the given below php script, I connect to database and insert data in it. But the data is not getting inserted in my database table. It is also not throwing any error. Where is my code wrong?

<?php
$host = '127.0.0.1';
$uname='root';
$pswd='';
$myDB='portal';
if($myConn = new mysqli($host,$uname,$pswd))
    echo 'Connected to MySQL server successfully.</br>';

else
    echo 'Unable to connect to server</br>';

$database = mysqli_select_db($myConn,$myDB);
if($database)
    echo 'Connected to database...</br>';

else
    echo 'Database not found!</br>';

$var1='string1';
$var2='string2';
$query= "INSERT INTO users VALUES ($var1,$var2)";
$result = mysqli_query($myConn,$query) or die(mysqli_error($myConn));

?>

Upvotes: 0

Views: 102

Answers (3)

Nik Drosakis
Nik Drosakis

Reputation: 2348

if users table have only two columns, or two plus an auto-incrementing id the query is:

INSERT INTO users VALUES ('$var1','$var2')

if there are more columns or a non primary id the query is:

INSERT INTO users (col1,col2) VALUES ('$var1','$var2')

You also miss a parameter in the connection instantiation:

$mysqli = new mysqli($host, $uname,$pswd, $myDB);

Upvotes: 0

hsols
hsols

Reputation: 71

In your statement, you must define the names of the target tables in your database, that the values should be inserted into, like this:

$query= "INSERT INTO users (Name,Age) VALUES ('$name','$age')";

Upvotes: 0

Jens
Jens

Reputation: 69440

You have to add single quotes around the values:

$query= "INSERT INTO users VALUES ('$var1','$var2')

Or better use prepared statements. See this for an example.

Upvotes: 1

Related Questions