it-swarm.com.de

Daten in Tabelle einfügen (mysqli insert)

Ich habe mir diesen Code schon länger angesehen und kann nicht erkennen, wo das Problem liegt. Ich habe den gesamten StackOverflow gelesen und kann immer noch nicht erkennen, wo mein Fehler liegt. 

<?php

mysqli_connect("localhost","root","","web_table");
mysql_select_db("web_table") or die(mysql_error());

if (mysqli_connect_errno()) {

  echo "Failed to connect to MySQL: " . mysqli_connect_error();

}
echo "<p> Connection Successful!"

mysqli_query('INSERT INTO web_formitem (ID, formID, caption, key, sortorder, type, enabled, mandatory, data) VALUES (105, 7, Tip izdelka (6), producttype_6, 42, 5, 1, 0, 0)');


echo "<p>Insert successfull";

?>

Der Fehler ist irgendwo in Zeile 13, das ist mysqli_query('insert.... Ich habe versucht, mir mit http://www.w3schools.com/php/php_mysql_insert.asp zu helfen, aber es hilft mir nicht viel.

11
Blue

Warnung: Beziehen Sie sich niemals zu Lernzwecken auf w3schools. Sie haben so viele Fehler in ihren Tutorials.

Gemäß der Dokumentation in mysqli_query muss der erste Parameter eine Verbindungszeichenfolge sein:

$link = mysqli_connect("localhost","root","","web_table");

mysqli_query($link,"INSERT INTO web_formitem (`ID`, `formID`, `caption`, `key`, `sortorder`, `type`, `enabled`, `mandatory`, `data`)
VALUES (105, 7, 'Tip izdelka (6)', 'producttype_6', 42, 5, 1, 0, 0)") 
or die(mysqli_error($link));

Hinweis: Fügen Sie in Ihrer Einfüge-Abfrage Backticks für Spaltennamen hinzu, da einige Ihrer Spaltennamen reservierte Wörter sind.

24
Rikesh

In mysqli_query (erster Parameter sollte connection sein, Ihre SQL-Anweisung) So

$connetion_name=mysqli_connect("localhost","root","","web_table") or die(mysqli_error());
mysqli_query($connection_name,'INSERT INTO web_formitem (ID, formID, caption, key, sortorder, type, enabled, mandatory, data) VALUES (105, 7, Tip izdelka (6), producttype_6, 42, 5, 1, 0, 0)');

beste Praxis ist jedoch

$connetion_name=mysqli_connect("localhost","root","","web_table") or die(mysqli_error());
$sql_statement="INSERT INTO web_formitem (ID, formID, caption, key, sortorder, type, enabled, mandatory, data) VALUES (105, 7, Tip izdelka (6), producttype_6, 42, 5, 1, 0, 0)";
mysqli_query($connection_name,$sql_statement);

Okay, natürlich wurde die Frage beantwortet, aber die dritte Codezeile scheint niemand zu bemerken. Es störte mich ständig. 

    <?php
    mysqli_connect("localhost","root","","web_table");
    mysql_select_db("web_table") or die(mysql_error());

aus irgendeinem Grund haben Sie eine Mysqli-Verbindung zum Server hergestellt, Sie versuchen jedoch, eine Mysql-Verbindung zur Datenbank herzustellen

       $link = mysqli_connect("localhost","root","","web_table");
       mysqli_select_db ($link , "web_table" ) or die.....

oder wo ich angefangen habe

     <?php $connection = mysqli_connect("localhost","root","","web_table");       
      global $connection; // global connection to databases - kill it once you're done

oder fragen Sie einfach mit einem $ -Verbindungsparameter als das andere Argument wie oben. Beseitigen Sie diese dritte Linie.

Beachten Sie bei der Verwendung der PHP-MySQL-Funktionen, dass die Verbindungsdetails zuerst erwähnt werden und die Abfrage in der Funktion übergeben wird

$cid=mysqli_connect("server", "username", "password", "database_name") or die (mysql_error());
mysqli_query($cid, $query) or die (mysqli_error($cid));
$result=mysqli_affected_rows($cid);
if($result===TRUE)
  echo"The query ran successfully";
else
  echo"The query did not run";
mysqli_close($cid);

Beachten Sie, dass $ cid die Variable ist, die die Verbindungsdaten in den obigen Codes enthält. 

0
Vikash Mishra