Ishikawa
Ishikawa

Reputation: 177

Inserting data into MySQL

I know this is probably ridiculously easy for most of you, but I just started learning PHP and MySQL and I do not have a programming background so bear with me. I am trying to insert the following into a database.

Error message:

Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\coninsert.php on line 17

PHP code:

<?php
$db = mysql_connect("localhost", "algo","*****");
if (!$db)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("reno",$db);

$name=$_POST['nom'];
$address=$_POST['adresse'];
$city=$_POST['ville'];
$zip=$_POST['codepostal'];
$phone=$_POST['numtel'];
$email=$_POST['email'];
$travaux=$_POST['travaux']

$sql = "INSERT INTO piste(name, address, ville, zip, phone, email, travaux) VALUES ("$name","$address","$city","$zip","$phone","$email","$travaux")";
mysql_query($sql)

mysql_close($db)
?>

Thanks!

Upvotes: 1

Views: 130

Answers (3)

tereško
tereško

Reputation: 58444

Lines:

$travaux=$_POST['travaux']
mysql_query($sql)
mysql_close($db)

You are missing semicolon.


Update .. aah yes, and there is the

$sql = "INSERT INTO piste(name, address, ville, zip, phone, email, travaux) 
        VALUES "$name","$address","$city","$zip","$phone","$email","$travaux")";

It should be:

$sql = "INSERT INTO piste(name, address, ville, zip, phone, email, travaux) 
        VALUES ('$name','$address','$city','$zip','$phone','$email','$travaux')";

And please, add some protection against SQL injections , because right not there is none.


Update2:

Lines like this: $email=$_POST['email'];
Should look like:
$email= isset($_POST['email'])? mysql_real_escape_string($_POST['email']) : '';

Upvotes: 3

Mark Pope
Mark Pope

Reputation: 11264

Change this line:

$sql = "INSERT INTO piste(name, address, ville, zip, phone, email, travaux) VALUES ("$name","$address","$city","$zip","$phone","$email","$travaux")";

to:

$sql = "INSERT INTO piste(name, address, ville, zip, phone, email, travaux) VALUES ('" . $name . "','" . $address . "','" . $city . "','" . $zip . "','" . $phone . "','" . $email . "','" . $travaux . "')";

Upvotes: 0

zokibtmkd
zokibtmkd

Reputation: 2183

You need single quotes around text values: VALUES ('".$name."', '".$address."', '".$city."', '".$zip."'....

Upvotes: 0

Related Questions