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();
바인딩 처리가 관건인듯.