Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 连接数据库最安全的方法是什么?_Php_Mysql - Fatal编程技术网

Php 连接数据库最安全的方法是什么?

Php 连接数据库最安全的方法是什么?,php,mysql,Php,Mysql,我想知道什么是连接到数据库的最好和最安全的方法,以包括在我必须从数据库获取数据的所有php文件中。现在,我每次都会建立一个连接,比如说,我用一段时间从数据库的某个表中获取一些数据,如下面的代码所示。你们能告诉我建立连接并暂时使用它的最佳方式是什么吗 我现在如何每次建立连接 $id=$_SESSION['id']; $connect = mysql_connect("localhost", "username", "password"); $select_data = mysql_

我想知道什么是连接到数据库的最好和最安全的方法,以包括在我必须从数据库获取数据的所有php文件中。现在,我每次都会建立一个连接,比如说,我用一段时间从数据库的某个表中获取一些数据,如下面的代码所示。你们能告诉我建立连接并暂时使用它的最佳方式是什么吗

我现在如何每次建立连接

$id=$_SESSION['id'];
    $connect = mysql_connect("localhost", "username", "password");
    $select_data = mysql_select_db('databasename', $connect);
    $select_data = mysql_query("SELECT * FROM members WHERE `id`='$id'") or die(mysql_error());
    while($fetch=mysql_fetch_assoc($select_data)) {

        // Show profile pic.
        $oImgBox = $dom->getElementById('adminProfilePicture');
        $oImg = $dom->createElement('image');
        $oImg->setAttribute('src',$fetch["profilepic"]);
        $oImgBox->appendChild($oImg);

正如其他人提到的,您显然需要使用mysqli或prepared语句。但除此之外,如果我理解正确,我相信您正在寻找的是include()函数

使用include,您可以在每个需要它的页面上轻松地放置特定的脚本(例如db连接)。看这里

第一步是将PHP代码放入一个独立的PHP文件中,如db_connect.PHP或user_profile.PHP。然后,对于需要连接到数据库的每个页面,您将添加
包括'user_profile.php'在html上方

编辑-添加示例数据库连接脚本

$db = new mysqli('localhost', 'user', 'pass', 'demo');

if($db->connect_errno > 0){
  die('Unable to connect to database [' . $db->connect_error . ']');
}

你关心安全,但你使用mysql。当然,你没有使用不推荐的
mysql
函数。好吧,@Dagon这就是为什么我问你什么是最安全和最好的方法:(@ KingMike和四处搜索从来不是你的选择?考虑使用像PDO这样的数据库类,并将PDO对象传递给所有的文件,感谢@ EternalHour的答案!所以我看了一些PDO文档,但是使用准备好的语句更好吗?如果我做对了。这是关于准备好的语句的文档,我不使用PDO,所以我不能提供专家意见,但准备好的语句将为您提供与PDO类似的功能和安全性。您还将注意到,有了mysqli,它支持面向对象(准备好的语句)和过程(类似于mysql_*语法,但更安全)。