2016-10-28 5 views
1

Ich frage mich, warum diese Fehlermeldung erscheint. Spalte 'Benutzername' darf nicht null sein ?Spalte 'Benutzername' kann nicht null sein

Ich habe Null bis Nr


Ein Datenbankfehler aufgetreten

Fehlernummer: 1048

Spalte 'username' kann nicht null sein

INSERT INTO login (username, email, password, role) VALUES (NULL, NULL, '2j $ 10 $ $ FaVW7V1yEDB0NnlmgwPHQ.SQi34ZCXi9ABJDOebDflZ.cqcSwZAoW', NULL)

Dateiname: C:/Programme Files/EasyPHP-devserver-16.1/eds-www/companygiondaci/system /database/DB_driver.php

Zeilennummer: 691

views/addusers.php

<div class="row-fluid"> 
      <div class="span12"> 

       <?php $this->load->library('form_validation'); ?> 

       <?php echo $successmessage; ?> 

       <?php echo validation_errors(); ?> 

       <?php echo form_open('cpages/addusersdb'); ?> 

       <div class="widget-box"> 
        <div class="widget-title"><h5>Add User</h5></div> 
        <div class="widget-content"> 

        <table border="0" style="width: 100%; height: 90px;"> 
         <tr> 
          <td>USERNAME</td> 
          <td><input type="text" name="username"></td> 
         </tr> 
         <tr> 
          <td>EMAIL</td> 
          <td><input type="text" name="email"></td> 
         </tr> 
         <tr> 
          <td>PASSWORD</td> 
          <td><input type="password" name="password"></td> 
         </tr> 
         <tr> 
          <td>ROLE</td> 
          <td><?php echo form_dropdown('roles', $options, 'administrator'); ?></td> 
         </tr> 
         <tr> 
          <td></td> 
          <td><input type="submit" class="edit" value="ADD"></td> 
         </tr>       
        </table>    
        </div> 
       </div>     
      </div> 
     </div> 

Modelle/Mpages.php

public function add_user() 
{ 
    $options = [ 
     'roles' => 'administrator', 
    ]; 

    $hash = password_hash($this->input->post('password'), PASSWORD_BCRYPT, $options); 

    $data = array(
     'username' => $this->input->post('username'), 
     'email' => $this->input->post('email'), 
     'password' => $hash, 
     'role' => $this->input->post('roles')  
    );  

    return $this->db->insert('login', $data); 

} 
+0

Setzen Sie es auf 'allow null' –

+0

** erlauben null ist nicht die Lösung. ** Überprüfen und beheben Sie die Fehlerlösung nur für diese. –

+0

Warum laden Sie Ihre Formularüberprüfungsbibliothek in Ihrer Ansicht? http://www.codeigniter.com/user_guide/libraries/form_validation.html#the-controller Sie müssen wirklich durch das Benutzerhandbuch zu schauen, – user4419336

Antwort

1
if($this->input->post()) { 

      $hash = password_hash($this->input->post('password'), PASSWORD_BCRYPT, $options); 

      $data = array(
       'username' => $this->input->post('username'), 
       'email' => $this->input->post('email'), 
       'password' => $hash, 
       'role' => $this->input->post('roles')  
      ); 
      $this->YOUR_MODEL->add_user($data); 
    } 

Dies sollte in Ihrem Controller gehen.

Und Ihr Modell Funktion wie diese

public function add_user($data) 
{  

    return $this->db->insert('login', $data); 

} 
0

Nun, Sie sagen sollte: Ich habe Null auf Nein, das bedeutet nicht NULL-Werte zulassen, aber Sie NULL-Wert senden ...?

Verwandte Themen