Database Basics
MySQL Commands
MySQL is a widely-used open-source relational database management system. Here are some essential MySQL commands for database management:
- Establishing a connection:
$link = mysql_connect("host", "username", "password");
$db = mysql_select_db("database", $link);
$rs = mysql_query("query", $link); // Retrieve data
$rs = mysql_query("query", $link); // Execute commands
$row = mysql_fetch_array($rs); // Retrieve data as an index array
$row = mysql_fetch_assoc($rs); // Retrieve data as an associative array
mysql_close($link); // Close connection
mysql_insert_id($rs); // Get ID of the last inserted record
mysql_error($link); // Retrieve the last error
$output = mysql_real_escape_string("unescaped_string", $link); // Secure data
Creating New Links with MySQL
To create a new link with additional security in MySQL, set the newlink parameter to true:
$link = mysql_connect("host", "username", "password", true);
MySQLi (MySQL Improved)
MySQLi is an enhanced extension of MySQL in PHP, providing improved features and security. Key features of MySQLi and PHP Data Objects (PDO) include:
- Connection versatility
- Enhanced security through prepared statements
- Support for atomic transactions with beginTransaction, commit, and rollBack
try {
$dsn = 'mysql:host=localhost;dbname=library';
$dbh = new PDO($dsn, 'dbuser', 'dbpass');
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, TRUE);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->beginTransaction();
$affected = $dbh->exec("sql"); // Execute SQL query
$dbh->commit(); // Commit transaction
$dbh->rollBack(); // Roll back transaction
$sql = "SELECT * FROM table WHERE id = :param1";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':param1', $param1);
$stmt->execute();
$results = $stmt->fetchAll();
foreach ($results as $row) {
// Process each row
}
} catch (PDOException $e) {
echo "Failed: " . $e->getMessage();
}
Persistent Connections
Persistent connections in databases maintain their state even after executing a script. Various ways to establish persistent connections based on the database extension used include:
- In MySQL:
mysql_pconnect();
mysqli_connect("p:host", "username", "password");
$dsn = 'mysql:host=localhost;dbname=example_db';
$options = array(PDO::ATTR_PERSISTENT => true);
$dbh = new PDO($dsn, 'dbuser', 'dbpass', $options);
