2017-02-19 74 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('bob')'听起来不正确。 – apokryfos

回答

0

你可以尝试错误检查以下内容:

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

此外,在您的查询,为什么你有第一$用户名?我相信它应该是您的列名,格式如下:

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

谢谢,您的“错误cheking”与Gmnayem的答案一起修复了剧本。和耶应该是我的大名,我搞砸了$感谢您的快速支持 – Tolkosino

+0

@Tolkosino:真棒。另外,请标记您接受的正确答案。 – uautkarsh

1

您的列名不应该包含“$” sign.Use这个代替。

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

希望它可以帮助你。