解析错误:语法错误,意外T_VARIABLE - 分号

时间:2012-03-27 21:25:45

标签: php mysql

我的IDE期待分号,但我不确定在哪里! 正是这条线突出了:

,'$other_writ'  WHERE id="$_SESSION[user_id]")

这是上面的代码:

 if (!empty($_POST['doLanguage']) && $_POST['doLanguage'] == 'Submit') 
{ 
  session_start();
  foreach($_POST as $key => $value)
  $id = "$_SESSION[user_id]";

  if(empty($err)) {
  for($i = 0; $i < count($_POST["other"]); $i++);
{
$native = mysql_real_escape_string($_POST['native'][$i]);
$other = mysql_real_escape_string($_POST['other'][$i]);
$other_list = mysql_real_escape_string($_POST['other_list'][$i]);
$other_read = mysql_real_escape_string($_POST['other_read'][$i]);
$other_spokint = mysql_real_escape_string($_POST['other_spokint'][$i]);
$other_spokprod = mysql_real_escape_string($_POST['other_spokprod'][$i]);
$other_writ = mysql_real_escape_string($_POST['other_writ'][$i]);
$sql_insert = "INSERT into `language`
(`native`,`other`,`other_list`,`other_read`, `other_spokint`
,`other_spokprod`,`other_writ`  )
VALUES
('$native','$other','$other_list','$other_read','$other_spokint','$other_spokprod'
,'$other_writ'  WHERE id="$_SESSION[user_id]")";

mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error());     
}

感谢您的帮助!

7 个答案:

答案 0 :(得分:1)

,'$other_writ'  WHERE id=" . $_SESSION[user_id] . ")

所以你错过了一个连接运算符.

答案 1 :(得分:1)

您需要更改

,'$other_writ'  WHERE id="$_SESSION[user_id]")";

,'$other_writ'  WHERE id=" . $_SESSION[user_id] . ")";

答案 2 :(得分:1)

你在这里打开一个字符串:

"INSERT into `language` ...

它正在关闭:

... WHERE id="

PHP在此之后需要分号。您可以通过用单引号(这是SQL标准)替换双引号来修复它,但是为什么要使用带有WHERE的{​​{1}}子句? ?你不需要那个。

完成你的字符串:

INSERT

答案 3 :(得分:1)

两件事;

  • $ _ SESSION [user_id]在"的引号中引用,该字符串完全引用"。无论如何,WHERE部分错位INSERT,可以完全删除。

  • 你的for循环没什么用;

    for($i = 0; $i < count($_POST["other"]); $i++);

最后的分号使它成为一个空循环。删除它,事情应该更好。

答案 4 :(得分:0)

我见过这个错误

" WHERE id="$_SESSION[user_id]")";

你应该用这种方式

" WHERE id=."$_SESSION[user_id].")";

你也打开了两个卷曲括号但是关闭了一个。

答案 5 :(得分:0)

非常确定你需要一个连接运算符:

WHERE id=" . $_SESSION[user_id] . ")";

或者像这样:

WHERE id={$_SESSION[user_id]} )";

答案 6 :(得分:0)

你的$ sql_insert字符串应如下所示。在WHERE之前注意。

$sql_insert = "INSERT into `language`
(`native`,`other`,`other_list`,`other_read`, `other_spokint`
,`other_spokprod`,`other_writ`  )
VALUES
('$native','$other','$other_list','$other_read','$other_spokint','$other_spokprod','$other_writ')  WHERE id = '{$_SESSION[user_id]}'";