我正在尝试将数据插入到我的数据库中。我有一个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循环插入值的格式是什么。
有人可以帮我解决这个问题吗?
谢谢!
答案 0 :(得分:2)
在查询之前,您似乎无需预定义那些name
和address
变量。您的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.")";