在一个表字段中插入两个变量的代码有什么问题


What is wrong with my code that inserts two variables into one table field?

这是我的代码:

$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