2011-10-31 6 views
1
<?php 
$inv = $_POST['inv']; 
$box = $inv; 
$date = $_POST['from']; 
$mark = $_POST['mark']; 
$type = $_POST['type']; 
$desc = $_POST['desc']; 
$machine = $_POST['machine']; 
$serial = 'x'; 
$cmode = $_POST['cmode']; 
$t1 = $_POST['t1']; 
$t2 = $_POST['t2']; 
$t3 = $_POST['t3']; 
$t4 = $_POST['t4']; 
$t5 = $_POST['t5']; 
$t6 = $_POST['t6']; 
$org = $_POST['org']; 
$plant = $_POST['plant']; 
$floor = $_POST['floor']; 
$line = $_POST['line']; 
$linex = $_POST['linex']; 
$group = $_POST['group']; 
$oper = $_POST['oper']; 
$obs = $_POST['obs']; 

echo $box.'<br/>'; 
echo $date.'<br/>'; 
echo $inv.'<br/>'; 
echo $mark.'<br/>'; 
echo $type.'<br/>'; 
echo $desc.'<br/>'; 
echo $machine.'<br/>'; 
echo $serial.'<br/>'; 
echo $cmode.'<br/>'; 
echo $t1.'<br/>'; 
echo $t2.'<br/>'; 
echo $t3.'<br/>'; 
echo $t4.'<br/>'; 
echo $t5.'<br/>'; 
echo $t6.'<br/>'; 
echo $org.'<br/>'; 
echo $plant.'<br/>'; 
echo $floor.'<br/>'; 
echo $line.'<br/>'; 
echo $linex.'<br/>'; 
echo $group.'<br/>'; 
echo $oper.'<br/>'; 
echo $obs.'<br/>'; 

$con = mysql_connect("localhost","username","mypassword"); 
if (!$con) { die('Could not connect: ' . mysql_error()); } 
mysql_select_db("brisay", $con); 
mysql_query("SET NAMES utf8"); 

$sql="INSERT INTO controller (box, date, inv, mark, type, machine, serial, cmode, t1, t2, t3, t4, t5, t6, org, plant, floor, line, linex, group, oper, obs) VALUES('$box','$date','$inv','$mark','$type','$machine','$serial','$cmode','$t1','$t2','$t3','$t4','$t5','$t6','$org','$plant','$floor','$line','$linex','$group','$oper','$obs')"; 
if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } 

erreur: 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 'group, oper, obs) VALUES ('123456','2011-10-07','123456','mark','type','4455','x' at line 1php mysql insert erreur

j'ai les echos que pour le débogage ... je vais avoir encore une erreur et il n'y a pas d'explication pour cela. Tout est correct ...

J'ai 23 colonnes dans la base de données .. Tous les noms sont corrects .. et j'ai toujours toujours une erreur sur l'insertion dans les colonnes 'desk', 'oper'.

ces colonnes dans la structure sont 'varchar (100)'

Merci à l'avance.

+1

S'il vous plaît faire des lectures sur les injections SQL. Que faire si '$ obs' est égal à 'foo'); - –

Répondre

0

Vous shoul essayez d'échapper les noms de champs si ce sont des mots de reserver:

INSERT INTO controller 
(box, `date`, inv, mark, `type`, machine, serial, cmode, 
t1, t2, t3, t4, t5, t6, org, plant, `floor`, line, linex, 
`group`, oper, obs) 
VALUES 
('$box','$date','$inv','$mark','$type','$machine','$serial','$cmode', 
'$t1','$t2','$t3','$t4','$t5','$t6','$org','$plant','$floor','$line', 
'$linex','$group','$oper','$obs') 
+0

J'ai échappé à chaque mot et ça fonctionne comme un charme, merci. – user1021482

2

Le groupe est un mot réservé dans SQL. (PAR GROUPE). Vous devez le citer en utilisant les `` -quotes.

linex, `group`, oper 
0

groupe est l'un des reserved word dans une base MySQL utilisation comme `group`

INSERT INTO controller (....,`group`, ........