2017-02-19 47 views
1

У меня проблема с моей вставкой Mysqli. Я помещаю блок try вокруг вставки, чтобы поймать возможные ошибки, я получаю уведомление о том, что это сработало, но данные не были вставлены.Вставка Mysqli не работает. Ошибка при всплытии

Вот код:

$mysqli = new mysqli("localhost", "yourusername", "somepasswdhere", "users"); 
if ($mysqli->connect_errno) { 
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
} 



         //formular set ? 
     if(isset($_POST['submit'])) { 
      echo $_POST['username']; 

      //bind post variables on local vars. 
      $username = $_POST['username']; 
      $fname = $_POST['fname']; 
      $lname = $_POST['lname']; 
      $email = $_POST['email']; 
      $password = $_POST['password']; 
      $cpassword = $_POST['cpassword']; 

      // Heres some crap but thats not that problem so im getting 
      // right into the next 
      // maybe problem part 

      try{ 
      $mysqli->query("INSERT INTO `users` ($username) VALUES ('$username')"); 
      $mysqli->commit(); 
      echo "works"; 
      } catch(Exception $e) { 
       echo $e->getMessage(), "\n"; 
      } 

Чтобы быть уверенным, что мой код будет совершено, я положил $mysqli->commit();

+0

что-то вроде 'INSERT INTO пользователей (BOB) VALUES ('боб')' не звучит. – apokryfos

ответ

0

Вы можете попробовать следующее для проверки ошибок:

$success = $mysqli->query(<YOUR SQL QUERY>); 
if (!$success) { 
    print_r($mysqli->error); 
} 

Кроме того, в запросе, почему у вас есть первый $ имя пользователя? Я считаю, что это должно быть ваше имя столбца, в следующем формате:

INSERT INTO `users` (<col name>) VALUES (<value>); 
+0

Спасибо, ваша «ошибка чеканки» вместе с ответом Gmnayem исправила скрипт. и да, это должно быть мое имя col, я испортил это. Спасибо за быструю поддержку. – Tolkosino

+0

@Tolkosino: Awesome. Также, пожалуйста, отметьте ответ, который вы считаете правильным, как принято. – uautkarsh

1

Ваше имя столбца не должны содержать «$» sign.Use это вместо.

$mysqli->query("INSERT INTO `users` (username) VALUES ('$username')"); 

Надеюсь, это поможет вам.