在PDO调用中使用PHP CONSTANTS

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了在PDO调用中使用PHP CONSTANTS脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<?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);

    $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);
}
?>

我已经“谷歌搜索”并在此处找到了部分答案.所以我希望在这里完成.

TIA

你做:
$DBH = new PDO("MysqL:host=localhost; dbname= sitename",root);

应该是:

$DBH = new PDO("MysqL:host=localhost; dbname= sitename",'root','root');

有报价.否则PHP认为它是一些常量而不是字符串.但是通过查看你的代码,我发现你已经定义了常量来访问数据库,所以你为什么不这样做呢:

$DBH = new PDO('MysqL:host='.DB_HOST.'; dbname='.DB_NAME,DB_USER,DB_PASSWORD);

UPDATE

我也看到你正在使用MysqL与PDO.请注意,为了safely use MySQL with PDO你需要disable emulated prepared statements

$DBH = new PDO('MysqL:host='.DB_HOST.'; dbname='.DB_NAME.';charset=utf8',DB_PASSWORD);
$DBH->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);

请注意,我还在DSN字符串中设置了编码(在我的情况下为utf8).我也想知道你的代码是否真的需要常量,因为通常每个请求只需要一个连接(到同一个数据库),因此如果只创建一次连接并通过,则不需要让这些全局变量浮动与需要它的代码部分的连接.有关此内容的更多信息,请参阅我的related question.

脚本宝典总结

以上是脚本宝典为你收集整理的在PDO调用中使用PHP CONSTANTS全部内容,希望文章能够帮你解决在PDO调用中使用PHP CONSTANTS所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。