使用PHP中的MYSQL查询将值插入DB

时间:2014-07-04 05:31:11

标签: php mysql

我正在尝试将数据插入到我的数据库中。我有一个for循环。我想逐个获取所有值并将它们插入数据库。我正在尝试以下方法:

//名称VALUE在$ name(1,2,3)

$name1 = addslashes($_POST['name1']);
$name2 = addslashes($_POST['name2']);
$name3 = addslashes($_POST['name3']);

//地址VALUE在$ address(1,2,3)

$address1 = addslashes($_POST['address1']);
$address2 = addslashes($_POST['address2']);
$address3 = addslashes($_POST['address3']);

echo $name1;
echo $address1;


for ($x=1; $x<=3; $x++) 
{
  $sql="INSERT INTO house (name, address)VALUES(''name'+$x',''address'+$x')";
  $result=mysql_query($sql);
} 

if($result)
{

  echo "<strong> <font size='18'>Thank you for updating your address</font></strong>";
  echo "<BR>";
  echo "<strong> <font size='18'><a href='logout.php'>Sign out</a></font></strong>";
}
else
{
  echo "<strong> <font size='18'>There was an error, please try again!</font></strong>";
  echo "<BR>";
}

我收到以下错误:

Parse error: syntax error, unexpected '$sql' (T_VARIABLE

我100%确定我在查询中的值部分做错了我不确定使用for循环插入值的格式是什么。

有人可以帮我解决这个问题吗?

谢谢!

4 个答案:

答案 0 :(得分:2)

在查询之前,您似乎无需预定义那些nameaddress变量。您的for循环可以简化为:

for($x=1;$x<3;$x++){
  $name = addslashes($_POST["name".$x]);
  $address = addslashes($_POST["address".$x]);
  $sql="INSERT INTO house (name, address)VALUES('$name','$address')";
  $result=mysql_query($sql);
  // now deal with the result here
}

答案 1 :(得分:1)

试试这个

$sql="INSERT INTO house (name, address)VALUES('name+{$x}','address+{$x}')";

而不是

 $sql="INSERT INTO house (name, address)VALUES(''name'+$x',''address'+$x')";

答案 2 :(得分:1)

试试这个

"INSERT INTO house (name, address)VALUES('name{$x}','address{$x}')";

"INSERT INTO house (name, address)VALUES('name".$x."','address".$x."')";

P.S。是+故意还是你偶然把一些JavaScript混合到你的php&amp; SQL。

另外看看PDO,你可以在循环外准备查询,然后注入值,它将为你做所有的卫生和引用变量。

$sql = "INSERT INTO house (name, address)VALUES(:name,:address)";

$stmt = $Pdo->prepare($sql);
for ($x=1; $x<=3; $x++) {
   $stmt->execute( array(':name' => 'name'.$x, ':address'=>'address'.$x ));
}

答案 3 :(得分:1)

你的引用有问题,似乎你正在尝试实现一个lambda变量。试试这个。

$name = "name";
$address = "address";
$sql="INSERT INTO house (name, address)VALUES(".$$name.$x.", ".$$address.$x.")";