Jump to content

MySQL error on form submission


webguync

Recommended Posts

I am getting an error when I fill out form information and try and submit to a MySQL DB. The error is:

 

"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 ''919-555-1212)' at line 1"

 

the code for the form is:

 

<form action="formtoemailpro.php" method="post">
<fieldset>
<legend></legend>
<table cellspacing="5">
<tr><td><span class="asterisk">*</span><span class="small"> indicates a required field</td></tr>
<tr><td><span class="asterisk">*</span> First Name:</td><td><input type="text" size="30" name="fname"></td></tr>
<tr><td><span class="asterisk">*</span> Last Name:</td><td><input type="text" size="30" name="lname"></td></tr>
<tr><td><span class="asterisk">*</span> Zip Code:</td><td><input type="text" size="30" name="zip"></td></tr>
<tr><td><span class="asterisk">*</span> Login email:</td><td><input type="text" size="30" name="loginemail"></td></tr>
<tr><td><span class="asterisk">*</span> Login Password:</td><td><input type="password" size="30" name="loginpw"></td></tr>
<tr><td>  Phone:</td><td><input type="text" size="10" name="phone"></td></tr>

<tr><td><input type="hidden" name="date_submitted"></td>
</tr></table></td></tr>

<tr><td> 

</td><td align="right"><input type="image" src="images/Send.jpg" value="Send"></td></tr>
</table>
</fieldset>
</form>

 

and the code to submit the form

 

<?php

//set up database and table names
$db_name ="shadowdata";
$table_name ="RegistrationForm";
$now = date('Y-m-d H:i:s');

//connect to MySQL and select database to use
$connection = @mysql_connect("localhost","username","PW") or die(mysql_error());

$db = @mysql_select_db($db_name,$connection) or die(mysql_error());

//create SQL statement and issue query
$sql = "INSERT INTO $table_name (fname, lname, zip, loginemail, loginpw, phone, date_submitted) VALUES ($_POST[fname], '$_POST[lname]', '$_POST[zip]', '$_POST[loginemail]', '$_POST[loginpw]', '$_POST[phone], '$_POST[date_submitted]')";

$result = @mysql_query($sql,$connection)or die(mysql_error());
/* E-mail stuff here */
$my_email = "email@shadowmarket.com";
$bcc = "";
$subject = "Comments from contact form";
$message = "You received a mesage from {$_POST['loginemail']}"; //populate as you see fit from data from the form
mail($my_email, $subject, $message);

 

and the DB info:

 


CREATE TABLE `RegistrationForm` (
  `fname` varchar(255) NOT NULL,
  `lname` varchar(255) NOT NULL,
  `zip` int(5) NOT NULL,
  `loginemail` varchar(255) NOT NULL,
  `loginpw` varchar(255) NOT NULL,
  `phone` int(10) NOT NULL,
  `date_submitted` datetime NOT NULL default '0000-00-00 00:00:00',
  `UserID` tinyint(4) NOT NULL auto_increment,
  PRIMARY KEY  (`UserID`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

 

 

Link to comment
Share on other sites

$sql = "INSERT INTO $table_name (fname, lname, zip, loginemail, loginpw, phone, date_submitted) VALUES ($_POST[fname], '$_POST[lname]', '$_POST[zip]', '$_POST[loginemail]', '$_POST[loginpw]', '$_POST[phone], '$_POST[date_submitted]')";

 

 

Look at $_POST[fname], needs these ' ' around it.

Link to comment
Share on other sites

thanks,

 

this is submitting now, but the field I have set up for date_submitted isn't submitting any date and the field I have set up for phone only submits the area code. For instance if I enter 919-555-1212, the only information in the database will be 919. Any ideas on how to fix these few items?

Link to comment
Share on other sites

thanks, the only part not working is the date_submitted field. It only displays the default 0000-00-00 00:00:00. I have the field as type datetime , Null No. In the past I have set a variable such as:

 

$date_submitted = date('Y-m-d H:i:s');

 

but not sure how I would incorporate that into my current SQL(?)

 

$sql = "INSERT INTO $table_name (fname, lname, zip, loginemail, loginpw, phone, date_submitted) VALUES ('$_POST[fname]', '$_POST[lname]', '$_POST[zip]', '$_POST[loginemail]', '$_POST[loginpw]', '$_POST[phone]', '$_POST[date_submitted]')";

 

 

Link to comment
Share on other sites

if you want to save current timestamp so there is no need for getting date from PHP. you can use now() function in mysql..

 

$sql = "INSERT INTO $table_name (fname, lname, zip, loginemail, loginpw, phone, date_submitted) VALUES ('$_POST[fname]', '$_POST[lname]', '$_POST[zip]', '$_POST[loginemail]', '$_POST[loginpw]', '$_POST[phone]', now())";

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.