我只是通过几个例子尝试学习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{
}