gpt4 book ai didi

php - Codeigniter 自动删除数据库查询中的斜杠?

转载 作者:行者123 更新时间:2023-12-04 06:22:18 25 4
gpt4 key购买 nike

我有一个 SQL INSERT 查询,其中有一个带有斜杠的字段。这是PHP中的字符串:
'\\\\192.168.2.10\\datastore'
这是我回应它的时候:
'\\192.168.2.10\datastore'
上面的字符串是查询的一部分,在这个方法中使用:
$this->db->query($sql);
但是,当我查看数据库时,它被写成:
\192.168.2.10datastore
我怎样才能阻止这种情况发生?我应该关闭什么来阻止 codeigniter 这样做?

更新

var $clients_array = array(
1 => array('datastore' => '\\\\192.168.2.10\\datastore'),
);

function(){

//loop here

$client_details = $this->clients_array[1];
$datastore = $client_details['datastore'];

$sql = "INSERT INTO table (datastore) VALUES ('$datastore')";

//$sql = "INSERT INTO table (datastore) VALUES ('".$datastore."')"; //tried this too

echo $sql;

if($this->db->query($sql)){}

}

最佳答案

我可能忽略了一些东西,但正如你所知,在 PHP 和 MySQL 中,这些反斜杠是转义字符。您需要为您的查询转义它们,否则它们会自行转义。

$datastore = $this->db->escape($client_details['datastore']);
$sql = "INSERT INTO table (datastore) VALUES ('$datastore')";

我很确定 mysql_real_escape_string()也可以,但我们正在使用 CI,所以不妨充分利用它。

考虑使用 CI 的 Active Record,它会自动转义所有查询,或者查询绑定(bind)(在链接页面中引用),否则您必须像往常一样手动进行。

更多关于使用 CI 转义查询: http://codeigniter.com/user_guide/database/queries.html

关于php - Codeigniter 自动删除数据库查询中的斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6404027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com