如何回复刚刚提交的表单中的名称,价格和ID?

时间:2016-08-26 06:48:03

标签: php forms mysqli

我遇到了 MySQLi和PHP 的问题。

我创建了一个表单,一旦我输入了所需的值并点击提交,这些值就会立即发送到数据库。没错。

我想要发生的是:点击提交按钮后,PHP将回显刚刚提交的条目的结果。也就是说:

   `INSERT INTO table VALUES (x, x, y) -> SELECT x, x, y FROM table ORDER BY id DESC LIMIT 1`

我已经尝试了很多方法来做到这一点,但是所有这些方法都要么回应之前的条目(刚刚提交的条目之前的条目),要么显然不能正常工作。

我尝试了mysqli_insert_id($ conn),但这没有返回任何内容。

这是我的代码暂时停留的地方:

    $conn = mysqli_connect($server, $user, $pw, $BD);
    if (!$conn) {
        die ('<span style="color: #FF0000;">"connection failed: "</span>' .  mysqli_connect_error());
    }

    $nome = $_POST['nome'];
    $preco = $_POST['preco'];

    $query = "INSERT INTO produtos(nome, preco) VALUES ('$nome', '$preco')";
    $result = mysqli_insert_id($conn);
    var_dump ($result);

    if (mysqli_query($conn, $query)){
        echo '<br>'."Succeeded!";
    } else {
        echo '<br>'."ERROR!" .'<br>'. $query ."<br>". mysqli_error($conn) .'<br><br>'. '<span style="color: #FF0000;">You have to fill all the fields.</span>';
    }

    mysqli_close($conn); 

要注意,如果有任何帮助,var_dump此时输出int(0)。 提前致谢。我一直在疯狂地挣扎着。

3 个答案:

答案 0 :(得分:2)

如果没有mysqli_insert_id查询,您将无法获得executing。更好地使用prepare statement来防止sql注入

 $stmt = $conn->prepare("INSERT INTO produtos(nome, preco) VALUES (?,?)");
    $stmt->bind_param('ss', $nome, $preco);
    $stmt->execute();// execute query
    $conn->insert_id;// get last insert id

答案 1 :(得分:0)

请注意,您甚至没有执行过您的查询。另外,您应该了解SQL注入并遵循以下模式:

$nome  = mysqli_real_escape_string($conn, $_POST['nome']);
$preco = mysqli_real_escape_string($conn, $_POST['preco']);

$sql    = "INSERT INTO produtos (nome, preco) VALUES ('".$nome."', '".$preco."')";
$query  = mysqli_query($conn, $sql) or die(mysqli_error($conn));
$result = mysqli_insert_id($conn);

echo $result; // Check your result.

答案 2 :(得分:-1)

使用此:

$query = "INSERT INTO produtos(nome, preco) VALUES ('$nome', '$preco')";
$res=mysqli_query($conn,$query);
$result = mysqli_insert_id($conn);
var_dump ($result);`