这是我的代码:
$datum=$_POST['datum'];
$mesto=$_POST['mesto'];
$details应该类似于这个
$detalis = "Datum rodjenja:" . $datum . "; Mesto rodjenja".$mesto;
然后我需要这样做:
$query="insert into table('1','2','3') values('$details','something1','something2')";
但它不会起作用。它插入了其他所有内容,但不会插入$detalis。
列名必须使用反引号``而不是单引号。列名不能用引号括起来。
使用mysql_real_eescape_string转义$details
变量。
$details = mysql_real_escape_string($details);
$query="insert into table(`1`,`2`,`3`)
values('$details','something1','something2')";
$detalis
不是$details
,列名是用反引号而不是单引号分隔的。而且您忘记了防止SQL注入。您应该实现一些基本错误检测,这样您就知道为什么您的代码"不起作用"。
$details = "Datum rodjenja:" . $datum . "; Mesto rodjenja" . $mesto;
// ^^^
$details = mysql_real_escape_string($details);
$query = "INSERT INTO `table` (`1`,`2`,`3`) VALUES('$details','something1','something2')";
// ^ ^ ^ ^ ^ ^ ^^^
$result = mysql_query($query) or die(mysql_error());
// ^ run query WITH ERROR CHECKING
从列名中删除'(从列名中移除单引号)。
您不能添加转换为details字符串,因为它是mysql的结束语句。
为什么它不起作用?
你拼错了:我想$detalis
和$details
应该是同一个东西。
没有必要在表列中加引号。您还需要转义查询中的分号,例如:
$query="INSERT INTO table (1,2,3) VALUES ('".mysql_real_escape_string($details)."','something1','something2')";
在插入命令时尝试mysql_real_escape_string($details)
而不是$details
。