This topic is locked
[SOLVED]

 Insert into (PHPRunner)

1/5/2011 6:45:44 PM
PHPRunner General questions
D
dclex author

HI All,
I am trying to insert into another table (Charges), before record added, with the following code. I am getting a syntax error. I would appreciate any help.
global $conn;

$strSQLInsert = "insert into Charges (Team Member, Week, Start, End, Project Name, Project Number, Client, Unit Type, Date, HRs/Qu, Work Order Number, Note, Task, Project Status) values ('".$values["Team Member"]."','".$values["Week"]."','".$values["Start"]."','".$values["End"]."','".$values["Project Name"]."','".$values["Project Number"]."','".$values["Client"]."','".$values["Unit Type"]."','".$values["Date"]."','".$values["HRs/Qu"]."','".$values["Work Order Number"]."','".$values["Note"]."','".$values["Task"]."','".$values["Project Status"]."')";

db_exec($strSQLInsert,$conn);
return true;

Sergey Kornilov admin 1/5/2011

Try to print your query instead of executing it.

echo "insert into Charges (Team Member, Week, Start, End, Project Name, Project Number, Client, Unit Type, Date, HRs/Qu, Work Order Number, Note, Task, Project Status) values ('".$values["Team Member"]."','".$values["Week"]."','".$values["Start"]."','".$values["End"]."','".$values["Project Name"]."','".$values["Project Number"]."','".$values["Client"]."','".$values["Unit Type"]."','".$values["Date"]."','".$values["HRs/Qu"]."','".$values["Work Order Number"]."','".$values["Note"]."','".$values["Task"]."','".$values["Project Status"]."')";


Then run your query manually using phpMyAdmin or Navicat to see more detailed error message if any.

D
dclex author 1/6/2011

HI Serg,
I changed the code to the following:
//** Save new data in another table ****

global $conn,$strTableName;
$strSQLSave = "INSERT INTO Charges (Week, Date, Note) values (";
$strSQLSave .= $values["Week"].",";

$strSQLSave .= $values["Date"].",";

$strSQLSave .= $values["Note"];
$strSQLSave .= ")";

db_exec($strSQLSave,$conn);
return true;
After making the changes, information is put in the "Charges" database if it is an integer. If it is a word with a space in it, a syntax error occurs. The date shows up in the new database as 0/0/0000 as well. Any thoughts?
Thanks

Sergey Kornilov admin 1/6/2011

I would suggest to print SQL query on the page and post this query here. This way we can see what's wrong with it.

D
dclex author 1/6/2011



I would suggest to print SQL query on the page and post this query here. This way we can see what's wrong with it.


Does this help? I am having trouble "echoing" the values.
Technical information

Error type 256

Error description 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 'Member, Week, Start, End, Project Name, Project Number, Client, Unit Type, Date,' at line 1

URL www.xxxx.info/xxxdatabase05/Timesheet_add.php?

Error file D:\hosting\xxxx\html\xxxdatabase05\include\dbconnection.php

Error line 36

SQL query INSERT INTO Charges (Team Member, Week, Start, End, Project Name, Project Number, Client, Unit Type, Date, HRs/Qu, Work Order Number, Note, Task, Project Status) values (bob,1,,,Test Project II,9989,TEST CLIENT,Unit Based,2011-01-01,3,,hi,Concrete Coring- Hourly including Travel Fee , Report Review ,)
More info
Call stack

File: line Function Arguments

0. include\dbconnection.php:36 db_query 1. INSERT INTO Charges (Team Member, Week, Start, End, Project Name, Project Number, Client, Unit Type, Date, HRs/Qu, Work Order Number, Note, Task, Project Status) values (bob,1,,,Test Project II,9989,T...;

  1. Resource id #1;

    1. include\dbconnection.php:47 db_exec 1. INSERT INTO Charges (Team Member, Week, Start, End, Project Name, Project Number, Client, Unit Type, Date, HRs/Qu, Work Order Number, Note, Task, Project Status) values (bob,1,,,Test Project II,9989,T...;


  2. Resource id #1;

    2. include\Timesheet_events.php:98 BeforeAdd 1. Array ( [Team Member] => bob [Week] => 1 [Project Name] => Test Project II [Project Number] => 9989 [Client] => TEST CLIENT [Task] => Concrete Coring- Hourly including Travel...;


  3. ;
  4. 0;

    3. Timesheet_add.php:414 Global scope N/A



Sergey Kornilov admin 1/6/2011

I can see a few errors here

  1. Field names with spaces must be quoted. If you use MySQL backtick character will do the job i.e.

    `Team member'
  2. Extra comma at the end of list of values
  3. Text and date values must be wrapped by single quotes

    wrong - bob

    right 'bob'
    Complete example:

INSERT INTO Charges (`Team Member`, Week) values ('bob',1)


I highly recommend to learn basics of SQL:

http://www.webcheatsheet.com/sql/interactive_sql_tutorial/