我的代码将两个变量插入一个表字段有什么问题?

时间:2012-02-29 11:50:49

标签: php mysql

这是我的代码:

$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。

5 个答案:

答案 0 :(得分:3)

你必须使用反引号``而不是单引号作为列名。您不能将列名括在引号中。

使用mysql_real_escape_string转义$details变量。

$details = mysql_real_escape_string($details);
$query="insert into table(`1`,`2`,`3`) 
           values('$details','something1','something2')";

答案 1 :(得分:1)

$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

答案 2 :(得分:0)

从列名中删除'(从列名中删除单引号)。

您无法将; 添加到详细信息字符串中,因为它是mysql的结束语句。

答案 3 :(得分:0)

在插入命令时尝试mysql_real_escape_string($details)而不是$details

答案 4 :(得分:0)

为什么它不起作用?

你拼错了:$detalis$details我认为应该是同一件事。

无需引用您的表格列。您还需要在查询中转义分号,例如:

$query="INSERT INTO table (1,2,3) VALUES ('".mysql_real_escape_string($details)."','something1','something2')";