Server Side/PHP

PHP PDO 작성 및 변환 예

Dev. Tool 2016. 8. 15. 23:53
mysql_connect ====> new PDO()
mysql_fetch_(row|array|assoc) ====> $stmt->fetch()

쿼리의 경우

예전:
    $q = mysql_query("SELECT * FROM table WHERE field1 = $field1 AND field2 = '$field2' ORDER BY id");

PDO (정석대로):
    $q = $dbh->prepare("SELECT * FROM table WHERE field1 = ? AND field2 = ? ORDER BY id");
    $q->bindParam(1, $field1, PDO::PARAM_INT);
    $q->bindParam(2, $field2, PDO::PARAM_STR);
    $q->execute();

PDO (그나마 좀 간소화시킨 문법):
    $q = $dbh->prepare("SELECT * FROM table WHERE field1 = ? AND field2 = ? ORDER BY id");
    $q->execute(array($field1, $field2));

///////////////////////////////////////////

$servername = "localhost";
$username = "root";
$password = "rhapsody3";
$dbname = "myDB";
 
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
 
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
 
// prepare and bind
$stmt = $conn->prepare("INSERT INTO MyGuests (firstname, lastname, email) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $firstname, $lastname, $email);
 
// set parameters and execute
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt->execute();
 
$firstname = "Mary";
$lastname = "Moe";
$email = "mary@example.com";
$stmt->execute();
 
$firstname = "Julie";
$lastname = "Dooley";
$email = "julie@example.com";
$stmt->execute();
 
echo "New records created successfully";
 
$stmt->close();
$conn->close();


바인딩 처리가 관건인듯.