<?php # Nettuts Tutorial using PHP Data Objects (PDO),
/**This file contains the database access information
*This file also establishes a connection to mySQL
*and selects the database.
*Set the database access information as constants:
**/
// print_r(PDO::getAvailableDrivers());
DEFINE('DB_USER', 'root');
DEFINE('DB_PASSWORD', 'root');
DEFINE('DB_HOST', 'localhost');
DEFINE('DB_NAME', 'sitename');
$php = "htmlspecialchars";
try {
#MySQL with PDO_MYSQL
// $DBH = new PDO("mysql:host={$php(DB_HOST)}; dbname={$php(DB_NAME)}", root, root};
$DBH = new PDO("mysql:host=localhost; dbname= sitename", root, root);
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
# UH-OH! Typed DELECT instead of SELECT!
$DBH->prepare('DELECT name FROM people');
} catch (PDOException $e) {
echo "I'm sorry, Dave. I'm afraid I can't do that.";
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}
?>
Konsolu çağırır [14-Ağustos-2011 15:59:59] PHP Uyarı: tanımsız sabit kökü kullanımı - yılında 'kök' varsayılır/Uygulamalar/MAMP/htdocs3/nettuts/PHP/PDO Veritabanı için Erişim/mysql_pdo_connect.php on line 20 "OS X getiri "in
Ben "googled" ettik ve burada kısmi bir yanıt buldu. Bu yüzden burada bitirmeyi umuyordum.
TIA
Ayrıca sabitleri interpolasyon yapmak '$ php = "htmlspecialchars"' geçici çözümü kullanmamalısınız. Bu mümkün, ancak bunun yararlı olduğu özel durumlardan biri değil. Bunun yerine, PDO DSN init dizesini kırın ve sabitleri normal olarak yerine getirin: '= yeni PDO (" mysql: host = ". DB_HOST." Dbname = ". DB_NAME."; ")' – mario