Ich habe ein seltsames Problem. Ich lerne vorbereitete Aussagen. Ich habe eine einfache Seite mit 1 Feld nama und einer Tabelle mit einer Spalte nama erstellt. Ich möchte nur sehen, dass die Daten eingehen. Wenn ich auf die Schaltfläche "Senden" drücke, werden Daten in der Tabelle angezeigt, aber jedes Mal, wenn ich Daten einfüge, wird 1 angezeigt. Alle Zeilen zeigen die gleiche Figur. Kann mich jemand durch das führen?

<?php

/**
 * Start the session.
 */
session_start();

require 'connect-test.php';

$nama= isset($_POST['nama']);

$stmt=$conn->prepare("INSERT INTO test (nama) VALUES (?)");
$stmt->bind_param("s", $nama);
$stmt->execute();
if (!$stmt)
{ printf("Errormessage: %s\n", $mysqli->error);}    

$stmt->close();
$conn->close();

?> 

<html>
<body>  
<form name="form2" method="post" action="test-deletenanti.php">
  <p>Name :
    <input type="text" name="nama" id="nama">
  </p>
  <p>
    <input type="submit" name="button" id="button" value="Submit">
  </p>  
</form>       
</body>
</html>
1
Linda May 24 Dez. 2015 im 10:12

1 Antwort

Beste Antwort

Veränderung

$nama = isset($_POST['nama']);

Zu:

$nama = $_POST['nama'];

isset gibt true oder false zurück, je nachdem, ob die Variable festgelegt ist. Sie geben sie also in $nama anstelle des tatsächlichen Werts der Eingabe ein.

Sie sollten isset() in einer if -Anweisung für das Ganze verwenden:

if (isset($_POST['nama'])) {
    $nama = $_POST['nama'];

    // rest of code to insert into DB
}
4
Barmar 24 Dez. 2015 im 07:14