Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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 如何在MySQL字段中存储和检索冒号(:)?_Php_Mysql_Escaping_Colon - Fatal编程技术网

Php 如何在MySQL字段中存储和检索冒号(:)?

Php 如何在MySQL字段中存储和检索冒号(:)?,php,mysql,escaping,colon,Php,Mysql,Escaping,Colon,我只是尝试在MySQL表中存储URI。当我检索到它时“:”消失了。所以变成了http//www.example.com我已经研究过了,有很多解决方案;(分号),(逗号),引号等,但不用于冒号 我尝试过http\://www.xyz.com(没有空格),但这将转换为http://www.example.com我正在使用php。有什么建议吗 您确实不需要代码来理解这个问题,但由于人们坚持,甚至反对,下面是代码: <?php $id = $_GET["id"]; $conn = new mysq

我只是尝试在MySQL表中存储URI。当我检索到它时“:”消失了。所以变成了http//www.example.com我已经研究过了,有很多解决方案;(分号),(逗号),引号等,但不用于冒号

我尝试过http\://www.xyz.com(没有空格),但这将转换为http://www.example.com我正在使用php。有什么建议吗

您确实不需要代码来理解这个问题,但由于人们坚持,甚至反对,下面是代码:

<?php
$id = $_GET["id"];
$conn = new mysqli($servername, $username, $password, $dbname); //security parameters not shown

$sql = "SELECT * FROM uri WHERE myURI='" . $id . "'";
$result = $conn->query($sql);
if ($result) {
    $row = $result->fetch_assoc();
    if ($row) {
        $SendTo = $row["SendTo"];
        header("Location: " . $SendTo);
    }
}
?>
使用该函数可以避开斜杠并安全地存储在数据库中

例如

$url  = "http://www.example.com";
$safeURL = mysqli_real_escape_string($url);

然后使用SQL中的
$safeURL
var来存储。

您只是将URI存储到db列中吗?如果是,则在PHP中验证URL并直接将URL存储到字段类型为
varchar
text
的列中,不要转义它,只需在PHP中验证它并直接存储它。如果URL无效,执行上述操作将为您提供额外的URL检查。返回错误或正常保存。我在存储URI时正在验证它。这不是问题所在-当我检索URI时,我丢失了冒号。您必须使用
addslashes()
函数进行保存。删除它。我们希望看到一些代码。我没有使用addslashes@normal。我的问题是冒号而不是斜杠。我尝试过这个解决方案,但它对我不起作用。@Chiwda所有符号都将用斜杠转义,使用此函数您将得到预期的结果。您测试过吗?请不要推荐
mysql\u real\u escape\u string()
。如果开发人员仍在使用
mysql\uu
函数,那么是时候升级到
mysqli\u
了。如果它们需要转义或正在处理用户提供的/不安全的数据,则可以使用带有占位符的预处理语句。@MehulV。回到这个问题上,这一次使用您的解决方案是有效的。我有另一个错误,阻止它工作。我已经接受并投了赞成票。