2017-11-11 1 views
0

Ich versuche, mysql Einträge mit einem Werkzeug namens editierbare Gitter (http://www.editablegrid.net/en/) zu erstellen. Ich habe gerade 2 Textfelder auf dem Code hinzugefügt .. aber es scheint, dass der MySQL-Vorbereitungscode nicht gefällt, was ich tue.PHP - Mysql Vorbereitung wird nicht ausgeführt

Das ist der PHP-Code:

require_once('config.php');   

// Database connection         
$mysqli = mysqli_init(); 
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5); 
$mysqli->real_connect($config['db_host'],$config['db_user'],$config['db_password'],$config['db_name']); 

// Get all parameter provided by the javascript 
$name = $mysqli->real_escape_string(strip_tags($_POST['name'])); 
$firstname = $mysqli->real_escape_string(strip_tags($_POST['firstname'])); 
$uid = $mysqli->real_escape_string(strip_tags($_POST['uid'])); 
$show = $mysqli->real_escape_string(strip_tags($_POST['show'])); 
$tablename = $mysqli->real_escape_string(strip_tags($_POST['tablename'])); 

$return=false; 
if ($stmt = $mysqli->prepare("INSERT INTO ".$tablename." (name, firstname, uid, show) VALUES ( ?, ?, ?, ?)")) { 

    $stmt->bind_param("ssss", $name, $firstname, $uid, $show); 
    $return = $stmt->execute(); 
    $stmt->close(); 
}    
$mysqli->close();   

echo $return ? "ok" : "error"; 

und hier den HTML-Code:

<div id="addform" style="height:210px;"> 

      <div class="row"> 
       <input type="text" id="name" name="name" placeholder="name" /> 
      </div> 

      <div class="row"> 
       <input type="text" id="firstname" name="firstname" placeholder="firstname" /> 
      </div> 
      <div class="row"> 
       <input type="text" id="uid" name="uid" placeholder="uid" /> 
      </div> 

      <div class="row"> 
       <input type="text" id="show" name="show" placeholder="show" /> 
       </div> 

      <div class="row tright"> 
       <a id="addbutton" class="button green" ><i class="fa fa-save"></i> Apply</a> 
       <a id="cancelbutton" class="button delete">Cancel</a> 
      </div> 
     </div> 

sie beide miteinander verbunden sind, mit Javascript und das funktionierte. Ich habe gerade 2 Textfelder hinzugefügt. Ist da ein Fehler im PHP Code? Arent ich durfte 4 Werte in der Prepare-Anweisung verwenden?

+0

Sie nicht HTML hinzufügen entkommen und parametrieren parametrieren einfach. Entkomme nicht dem Tabellennamen, verwende eine weiße Liste erlaubter Namen. Wenn Sie ausführen, was passiert, erhalten Sie einen Fehler? – chris85

Antwort

0

Der Code scheint richtig, aber variable Tabellenname ist nicht definiert, so dass mehr Textfeld

<div class="row"> 
<input type="text" id="tablename" name="tablename" placeholder="input table name" /> 
</div> 

Oder stellen Tabellenname in PHP

$tablename = 'table name here'; 
+0

Ich habe überprüft, dass .. das Skript nicht beeinflusst. Funktioniert immer noch nicht – mambu231