2014-10-05 46 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

相关问题