These notes are continued from this post.
How to Retrieve Data from a MySQL database with PHP (with mysqli)
Best practice: Always free result and connection when done.
db_connect_guide.php
// Credentials
$dbhost = 'localhost';
$dbuser = 'webuser';
$dbpass = 'secret';
$ dbname = 'globe_bank';
// 1. Create DB Connection
$conn = mysqli_connect(
$dbhost, $dbuser, $dbpass, $dbname
);
// 2. Perform Query
$query = "SELECT * FROM subjects";
$result_set = mysqli_query($conn, $query);
// 3. User returned data
while ($subj = mysqli_fetch_assoc($result_set); {
echo $subject["menu_name"] . "<br/>";
}
// 4. Release returned data
mysqli_free_result($result_set);
// 5. Close connection
mysqli_close($conn);
get_declared_classes() class_exists() get_class() is_a() get_class_vars($string) get_object_vars($object) //current ? property_exists($mixed, $string)
header('Content-Type: text/csv');
header('Content-Disposition: attachment,
filename=rates.csv');
$file->fpassthru();
exit;
// #2
->SetCSVControl("\t");
SplTempFileObject()
// Handles memory
// Clears up resources automatically
require_once
('db_credentials.php');
function db_conn() {
$conn = mysqli_connect(
DB_SERVER, DB_USER,
DB_PASS, DB_NAME);
return $conn;
}
function db_disconn($conn) {
if(isset($conn)) {
mysqli_close($conn);
}
}
$result = find_all_subjects();
$count = mysqli_num_rows($result);
// The following are TWO OPTIONS for displaying the query results
// FOR LOOP
for ($i=0; i<$count; $i++) {
$subject = mysqli_fetch_assoc($result);
echo $subject['menu_name'];
}
// WHILE LOOP
While ($subj = mysqli_fetch_assoc($result)) {
echo $subject['menu_name'];
}
// Convert CSV to multidimensional array
<?php
$csvFile = new SplFileObject('common/data/cars.csv');
$csvFile->setFlags(SplFileObject::READ_CSV);
foreach ($csvFile as $line) {
$cars[] = $line;
}
echo '<pre>';
print_r($cars);
echo '</pre>';
->OpenFile('\t')
->setFlags() // SKIP_EMPTY , READ_AHEAD
->seek(3)
->current()
->next()
->eof() // End of file
->fwrite
mysql_fetch_row() // returns standard array mysql_fetch_assoc() // best // - associative array // - keys are columnar // - slightly slower, but worth it (?) mysql_fetch_array() // - does boon (?)
PHP: 3 APIs
- mysql (gone in PHP 7)
- mysqli (most common)
- PDO (object-oriented; works with any rdbms)
Prepared Statements (good security)
#GOTCHA: On Windows: GlobIterator requires a direct/absolute path (no relative paths)
$files = new GlobIterator(__DIR__, '/path/*.jpg');
foreach ($files as $file) {
echo $file->getFilename() . '<br>';
}
RegexIterator($files, '/\');
mysqli_connect_errno() // last errror number mysqli_connect_error() // string description of last error
Date Published: 04/26/21
