Mysqli真正的转义字符串,如何解析

时间:2015-07-24 14:34:36

标签: php sql mysqli escaping

我有一个类mysqli connect,我需要从另一个类(不在这个构造中)中转义变量,但是在上面的类中。

public function __construct(){

            require_once(__DIR__."/../config/config.php");
            $mysqli = new mysqli($config['db_hostname'], $config['db_username'], $config['db_password'], $config['db_name']);

            if($mysqli->connect_errno)
            {
                printf("Připojení selhalo %s\n",$mysqli->connect_error());
                exit();

            }

            $this->connection = $mysqli;
            mysqli_set_charset($this->connection, $config['charset']);

            if($this->isLoginPage()){

            }else{
                //DIE pokud není přihlášený ----------------------------
            if(!$this->isLogged()[0]->id and $_GET['qr'] != 1){
                die("Nepovolený přístup.");
            }
            //------------------------------------------------
        }
        }




        public function insert($query){
            $result = $this->connection->query($query);

            return $this->connection->insert_id;
        }

        public function update($query)
        {
            $result = $this->connection->query($query);
        }

我需要从sql中的另一个类解析mysqli_real_escape_string。代码看起来像。

function updatePageSettings($array){
            global $db;

            $query = "UPDATE settings set setting_page='".$array."'";

            return $db->update($query);
        }

我需要在$ query中转义$ array(像mysqli_real_escape_string($ array)一样思考)。感谢您的回复!

1 个答案:

答案 0 :(得分:1)

在您的类中添加另一个方法来建立数据库连接和所有。

public function escape($string){
  return $this->connection->real_escape_string($string);
}

然后更新设置功能如下

function updatePageSettings($array){
   global $db;

   $query = "UPDATE settings set setting_page='".$db->escape($array)."'";

   return $db->update($query);
}