繁体   English   中英

PHP脚本连接到SQL

[英]PHP script to connect to SQL

我正在学习PHP。 我正在使用一个php文件来处理sql表的表单数据,并且它具有服务器名称,用户,密码和dbname来执行sql-connect查询。 当然,它在网站的公共目录中。 这是一种安全的方法还是任何建议都值得赞赏。 示例如下:

$name = $_POST['name'];
$phn = $_POST['phn'] ;

$servername = "localhost";
$username = "abc";
$password = "abc";
$dbname = "abc";

// Create connection
$conn = mysqli($servername, $username, $password, $dbname);

使用mysqli扩展进行连接使您能够使用更新的MySQL功能,例如事务查询和参数化查询,而旧的mysql扩展则不提供这些功能。

看看MySQL改进的扩展@ php.net

您的mysql应该是mysqli_connect ()

您可以将数据库凭据存储在任何地方,但最好使用以下方法将它们存储在主PHP文件夹之外的位置:

/config/db.config.php

<?php
define('DB_USER', 'root');
define('DB_PASS', 'pass');
define('DB_DATABASE', 'database');
define('DB_HOST', 'host');

如果您将其存储在php文件夹的内部,则每次将代码从本地复制到Web时,都将覆盖您的配置。 同样,这样的文件是安全的(如果您从Web上访问它,您将看不到任何内容),但是我建议不要将.htaccess文件放在此处deny for all内容deny for all 另外,我建议不要在没有任何包装的情况下不要使用mysqli_connect。 (最好将PDO与参数化查询一起使用)。 但是,如果您想使用mysqli,最好在Web上搜索一个好的包装,或者自行编写。 根据我的经验,使用mysqli的最佳方法是使用静态函数创建类:

class DB {
   public static function init($dbHost, $dbUser, $dbPass, $db);
   public static function getTable($query);//get array of arrays
   public static function getRow($query);//get array (one database row)
   public static function getCell($query);//get single value
   public static function getColumn($query);//get array (column)
   public static function query($query);//update, delete, insert
}

因为使用此类,您将可以使用以下方法在脚本的任何位置获取数据:

$list = DB::getTable("select * from table");

在实例化MySQLi连接之前,您忘记了new

尝试以下方法:

$conn = new mysqli($servername, $username, $password, $dbname);

请尝试这个

<?php
           $servername = "localhost";
           $username = "abc";
           $password = "abc";
           $dbname = "abc";


          // Create connection
          $conn = mysqli_connect($servername, $username, $password, $dbname);

           $name = $_POST['name'];
           $phn = $_POST['phn'] ;
          ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM