插入和检索数组到mysql和PHP

时间:2015-03-08 08:34:19

标签: php mysql arrays

我有一个包含这样的数组的表单:

地址[addr1],地址[addr2],地址[pin]等..

如何将其插入并检索到数据库中?任何帮助将不胜感激。

<pre><input placeholder="Street Address" type="text" name="address[addr1]" /><span class="icon-place"></span></span></pre>

4 个答案:

答案 0 :(得分:0)

<?php
$address1=$_POST['Address'][addr1];
$address2=$_POST['Address'][addr2];
$pin=$_POST['Address'][pin];

$query=mysqli_query($link, "insert into your_table(address1, address2, pin) values('$address1', '$address2', '$pin')";

尝试此过程

答案 1 :(得分:0)

对于插入:

方法1:使用json_encode($ address)并保存数据。 See detail

方法2:尝试foreach()然后插入像

这样的数据
foreach($address as $a){
   //query for insertion
}

用于检索数据

对于方法1:使用json_decode()解码所有json数据。 See detail

方法2:正常处理如何检索数据

foreach($address as $a){
   //query for insertion
}

答案 2 :(得分:0)

不要忘记验证输入字段以防止sql注入。 但是下面应该让你走上正轨。我编辑了我的答案。试试这个。

<?

$lineOne = $_POST['address[addr1]'];
$lineTwo = $_POST['address[addr2]'];
$pin = $_POST['address[pin]'];

//form sql statement
$sqlSet = "INSERT INTO addressTable(address1, address2, pin)
        VALUES('$lineOne', '$lineTwo', '$pin')";

$con = mysqli_connect("localhost", "my_user", "my_password", "my_db");
// Check connection
if (mysqli_connect_errno()) {
	echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// execute insert query
$insertQuery = mysqli_query($con, $sqlSet);


//form sql statement
$sqlGet = "SELECT * FROM addressTable";

// execute select query
$selectQuery = mysqli_query($con, $sqlGet);

?>

答案 3 :(得分:0)

使用来自用户的数据时,prepare语句非常重要,而不是仅仅将它们作为字符串构建,以避免注入攻击。

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* create a prepared statement */
if ($stmt = $mysqli->prepare("INSERT INTO addr_table (addr1, addr2, pin) VALUES (?, ?, ?)")) {

    /* bind parameters for markers */
    $stmt->bind_param("sss", $addr1, $addr2, $pin);

    $address1=$_POST['Address']['addr1'];
    $address2=$_POST['Address']['addr2'];
    $pin=$_POST['Address']['pin'];

    /* execute query */
    $stmt->execute();

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();

(某些close业务不是必要的,但有完整性。)