2016-05-03 14 views
-2

DB und Tabelle wird erstellt, aber die Form Werte werden nicht in die Datenbanktabelle Formularfeldwerte absolut richtig sind gebe ich sie durcheinfügen Wert mit PHP mysqli Verbindung

Echo geprüft

Gibt es einen Fehler in meinem Einsatz in SQL-Befehl . Code ist wie folgt

<html> 
<head> 
    <title></title> 
</head> 
<body> 

<?php 
    $servername="localhost"; 
    $username="root"; 
    $password=""; 
    $conn = new mysqli($servername, $username, $password); 
    if ($conn->connect_error) 
    { 
     die("Connection failed: " . $conn->connect_error); 
    } 
    $conn->query("CREATE DATABASE IF NOT EXISTS `B2B`"); 
    $sql1="CREATE TABLE IF NOT EXISTS `B2B`.`company_details`(
       `email` VARCHAR(30) NOT NULL, 
       `password` VARCHAR(20) NOT NULL, 
       `company_name` VARCHAR(70) NOT NULL, 
       `address` VARCHAR(150) NOT NULL, 
       `website` VARCHAR(70), 
       `phone` VARCHAR(20), 
       `mobile` VARCHAR(20) NOT NULL, 
       `fax` VARCHAR(20), 
       `contact_person` VARCHAR(30) NOT NULL, 
       `deals_in` VARCHAR(300), 
       `Introduction` VARCHAR(400), 
       PRIMARY KEY (email));"; 
     if($conn->query($sql1)) 
     { 
      echo 'table is created succssfully'; 
     } 
     function test_data($data) 
     { 
      $data=trim($data); 
      $data=stripslashes($data); 
      $data=htmlspecialchars($data); 
      return $data; 
     } 
     $errors = array(); 
     if ($_SERVER["REQUEST_METHOD"] =="POST") 
     { 
      $email=test_data($_POST["email"]); 
      $password=test_data($_POST["password"]); 
      $companyName=test_data($_POST["companyName"]); 
      $introduction=test_data($_POST["introduction"]); 
      $deals_in=test_data($_POST["deals_in"]); 
      $address=test_data($_POST["address"]); 
      $website=test_data($_POST["website"]); 
      $phone=test_data($_POST["phone"]); 
      $mobile=test_data($_POST["mobile"]); 
      $fax=test_data($_POST["fax"]); 
      $contact_person=test_data($_POST["contact_person"]); 
      $sql="INSERT INTO `company_details` (`company_name`, `address`, `email`, `mobile`, `contact_person`, `password`, `website`, `phone`, `fax`, `introduction`, `deals_in`) VALUES ('".$companyName."', '".$address."', '".$email."', '".$mobile."', '".$contact_person."', '".$password."', '".$website."', '".$phone."', '".$fax."', '".$introduction."', '".$deals_in."')"; 
      $conn->select_db('B2B'); 
      $conn->query($sql); 
     } 
     else 
     { 
      echo '<h2>Access is Denied</h2>'; 
     } 
     $conn->close(); 
?> 
</body> 

+1

Entfernen Sie zuerst, dass create table stuff aus dem Skript. Sie gehören nicht dorthin. Versuchen Sie dann, die Abfrage einzufügen. Versuchen Sie außerdem, den Fehler aus der Abfrageausführung zu drucken. – e4c5

+0

@ e4c5 - Ich stimme zu, dass der create content nicht dort sein sollte - aber ohne ihn hätte ich den Tippfehler-Unterschied zwischen der Spalte "Einleitung" und der Abfrage "Einführung" nicht bemerkt - dh: der eine ist kursiv und der andere ist nicht – gavgrif

Antwort

0

Sie definieren die Einführung Spalte als

`Introduction` VARCHAR(400), 

aber versuchen, Datum einfügen in 'Einführung' - das heißt: nicht aktiviert:

..., `introduction`, `deals_in`).... 

Sie müssen also entweder das Skript ändern, das die Tabelle oder die Abfrage erstellt. Da keine anderen Spalten großgeschrieben werden, würde ich empfehlen, für den Spaltennamen "Einführung" zu verwenden.