2014-10-05 28 views
-1

我有關於上面提到的問題。我在php中的代碼如下:PHP的Mysql插入到不工作,沒有錯誤沒有數據發佈到數據庫,更早的相同的頁面正在工作

$con = mysql_connect(xxxx,xxx,xxx) or die(mysql_error()); 
     mysql_select_db(xxx) or die(mysql_error()); 
     if (count($_POST) > 0) echo "form submitted"; 
     if(isset($submit)) 
     { 
     $name = $_POST['std_name']; 
     $email = $_POST['email']; 
     $pass = $_POST['pass']; 
     $user_type = "student"; 
        if(mysql_query("insert into login (user_id, user_pass, User_type) values ('$email','$pass','$user_type'", $con)) 
        { 
         echo "<p class='success_msg'>Congrats! your registration has successfully been done.</p>"; 
         echo mysql_error(); 
        } 
        else 
        { 
         echo mysql_error(); 
        } 

此前的代碼運行良好,值被輸入到數據庫中。但突然它不工作,甚至沒有給出任何錯誤。請提供任何有關這方面的幫助。

+0

自「上次」工作以來,有些事情發生了明顯變化。始終處理工作代碼的副本,這樣您就可以恢復到原來的狀態。在打開'<?php'標籤後立即在文件頂部添加錯誤報告 'error_reporting(E_ALL); ini_set('display_errors',1);'看看它是否產生任何東西。 – 2014-10-05 15:14:48

+0

也所有的列以小寫字母開頭,除了'User_type'修正它,如果這是一個錯字 – 2014-10-05 15:15:47

+0

另外,這個'if(isset($ submit))'在哪裏被定義?如果不是,那麼你可能需要做一些事情,比如'if(isset($ _ POST ['submit']))' – 2014-10-05 15:16:21

回答

1
  • $提交代碼示例中未設置
  • 你缺少你的查詢
  • 閱讀關於「SQL注入」的最後一個右括號,你的代碼是脆弱的
+0

我會同意第2點(好的接收),但是不清楚'$ submit'是否在OP的代碼中,但沒有顯示我們。引起了一個錯誤,OP說*「但突然它不工作,甚至沒有給出任何錯誤」* – 2014-10-05 15:19:32

+0

實際的代碼是在這裏上面是缺少的 – 2014-10-05 15:21:37

+0

其實我沒有在這裏包括html代碼這只是PHP代碼。一個支架錯過粘貼這裏。請提出一些補救方案。此代碼早些時候出現問題,並且未對其進行任何更改。它現在不工作 – 2014-10-05 15:30:14

1

以下是可能幫助 ... 通過PHPMyAdmin或SSH連接到您的MySQL數據庫。

一旦連接,手動鍵入查詢(所以,插入登錄()等)) - 如果它的工作,那麼這是一個錯誤進一步的代碼。如果是這種情況,你需要向我們展示更多。

好的,所以我在下面應用了一個不錯的PDO版本。

$host = "localhost"; 
$port = 3306; 
$dbname = "myDatabase"; 
$user = "myUser"; 
$pass = "myPass"; 
$db = new PDO("mysql:host=" . $host . ";port=" . $port . ";dbname=" . $dbname, $user, $pass); 

echo (count($_POST) > 0) ? echo "form submitted" : ""; 
if(isset($submit)) 
{ 
    $name = $_POST['std_name']; 
    $email = $_POST['email']; 
    $pass = $_POST['pass']; 
    $user_type = "student"; 
    $query = $db->prepare("INSERT INTO login(`user_id`, `user_pass`, `User_type`) VALUES (:email, :pass, :utype"); 
    $binds = array(
     ":email" => $email, 
     ":pass" => $pass, 
     ":utype" => $user_type 
    ); 
    if($query->execute($binds)) 
    { 
     echo "<p class='success_msg'>Congrats! your registration has successfully been done.</p>"; 
    }else{ 
     echo "\nPDO::errorInfo():\n"; 
     print_r($db->errorInfo()); 
    } 
} 

閱讀PDO文檔here

+0

可能值得概述您所做的更改。它基本上是切換到PDO嗎? – halfer 2014-10-05 15:43:01

+0

但情況仍然如此。它不工作。 – 2014-10-05 15:50:57

+0

但情況仍然如此。它不工作。 - @matrixdevuk – 2014-10-05 15:58:35

相關問題