从mysqli切换到pdo插入不起作用

时间:2017-03-22 17:04:45

标签: php mysqli pdo

我只是通过几个例子尝试学习pdo并且进展不顺利,我有太多问题,我找不到任何我需要的答案......

首先使用mysqli我有$con = mysqli_connect() or die();然后当我需要时我使用$ con和mysqli_real_escape_string as first parameter,当我Select from table, update等时。

但就像我在This tutorial和W3Schools教程中看到的那样,我需要这样做:

$servername = "localhost";
$username = "root";
$password = "";

try{
    $con = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

}catch(PDOException $e){
    $error =  "Connection failed: " . $e->getMessage();
}

在$ con下添加准备获取数据插入等。 是否可以像mysqli一样使用connect.php文件连接到db,然后在需要的地方使用$con作为变量? 另外我不明白那些"::" here PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION

是什么

这是我尝试的代码,但是没有向类方法insertUser添加$ con我无法通过在其他文件中包含连接来访问它。 当我添加它时,我确实得到了成功消息,但没有任何内容插入到表中。

include_once('./c.php');
$p0 = $_POST['p0'];
$p1 = $_POST['p1'];
$p2 = $_POST['p2'];
$p3 = $_POST['p3'];
$p4 = $_POST['p4'];
class newUser{
        function insertUser($p1, $p2, $p3, $p4){
            $pid = md5($p3);
            $pw  = md5($p4);
            $servername = "localhost";
            $username = "root";
            $password = "";
            $con = new PDO("mysql:host=$servername;dbname=myDB", $username, $password); 
//I have this into my c.php into try{}catch(){} but I cannot access it...
            $stmt = $con->prepare("INSERT INTO suu (nf, nl, me, wp, pin, rdate, ac) 
            VALUES (:firstname, :lastname, :email, :password, :profileid, now(), 0)");
            $stmt->bindParam(':firstname', $p1);
            $stmt->bindParam(':lastname', $p2);
            $stmt->bindParam(':email', $p3);
            $stmt->bindParam(':password', $pw);
            $stmt->bindParam(':profileid', $pid);
            $stmt->execute();

    echo "registerSuccessfully.html"; //I get this message but table is empty
        }
        function checkData($p1, $p2, $p3, $p4){
            if($p1!="" && $p1!=NULL && $p2!="" && $p2!=NULL && $p3!="" && $p3!=NULL && $p4!="" && $p4!=NULL){
                return true;
            }else return false;
        }
    }
   if($p0=="reg"){
    $newUser = new newUser($p1, $p2, $p3, $p4);
    if($newUser->checkData($p1, $p2, $p3, $p4)){
        try{
        $newUser->insertUser($p1, $p2, $p3, $p4);
        }catch(PDOException $e){
        echo "Error: " . $e->getMessage();
        }
    }
   }else{

   }

0 个答案:

没有答案