Let's introduce the use of database abstraction layer PDO:
PDO (PHP Data Objects) is a lightweight PHP extension that provides a data access abstraction layer. What's more, PDO can only be used in PHP5.0 or above.
The following is an introduction to the predefined constants commonly used in PDO:
PDO::PARAM_BOOL (integer) Represents Boolean data type
PDO::PARAM_NULL (integer) SQL
representing data type NULLPDO::PARAM_INT (integer) SQL
represented as integer data typePDO::PARAM_STR (integer) SQL
expressed as char varchar or other string data typePDO::PARAM_LOB (integer) SQL
representing the object data typePDO::FETCH_LAZY (integer) The specified acquisition method should return each row of the result set as the variable name of an object corresponding to it Field name
PDO::FETCH_ORI_NEXT (integer) Get the next row of the result set
PDO::FETCH_ORI_PRIOR (integer) Get the previous row of the result set
PDO::FETCH_ORI_FIRST (integer) Get the first row of the result set
PDO::FETCH_ORI_LAST (integer) Get the last row of the result set
PDO::ATTR_PERSISTENT (integer) Create a persistent connection instead of creating a new one
Basic usage of PDO:
Use PDO to connect to the database (only MySQL is used here):
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>
The following code It is the processing of MySQL connection error:
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh->query('SELECT * from FOO') as $row ) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage () . "
";
die();
}
?>
The following are two examples of repeated use of insert statements:
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value ', $value);
// insert one row
$name = 'one';
$value = 1;
$stmt->execute();
// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>
$stmt = $dbh-> prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value );
// insert one row
$name = 'one';
$value = 1;
$stmt->execute();
/ / insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>
Query the database:
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) {
while ($ row = $stmt->fetch()) {
print_r($row);
}
}
?>