在mysql中存储URL

时间:2013-01-31 13:06:10

标签: php mysql

我想从php执行一个mysql查询。

$sql = insert into q_links values ( 'garment.png', 'imgs\ques\p1\garment.png' );

我无法按原样存储网址,而是按照以下方式存储:imgsquesp1garment.png。但是我希望将网址存储为:imgs\ques\p1\garment.png。所以我尝试了这个:

$sql = mysql_real_escape_string($sql);

但这样我的$sql看起来像:

insert into q_links values ( \'garment.png\', \'imgs\\ques\\p1\\garment.png\' );

在mysql数据库中不起作用。

我必须在数据库中插入此URL以供以后使用。网址为imgs\ques\p1\garment.png。我怎样才能做到这一点?

更新 我尝试了第一条对我有用的评论。

所以解决方案是:

$sql = "insert into q_links values ( 'garment.png', '".mysql_real_escape_string( 'imgs\ques\p1\garment.png' )."' );";

7 个答案:

答案 0 :(得分:4)

$url = "imgs\ques\p1\garment.png";

$url = mysql_real_escape_string($url);
$sql = "INSERT INTO q_links VALUES ('garment.png', '$url')";

作为旁注,不推荐使用mysql_ *函数,您应该使用mysqli_*PDO转到Prepared语句。

PDO中的示例:

$pdo = new PDO("mysql:host=localhost;port=3306;dbname=mydb", "user", "password");
$stmt = $pdo->prepare("INSERT INTO q_links VALUES (?, ?)");
$stmt->execute(array("garment.png", "imgs\ques\p1\garment.png"));
$stmt->closeCursor();

答案 1 :(得分:2)

不要逃避单引号,只有\

$var = "insert into q_links values ( 'garment.png', 'imgs\\ques\\p1\\garment.png');"

答案 2 :(得分:2)

为什么不用正斜杠存储呢?

$sql = insert into q_links values ( 'garment.png', 'imgs/ques/p1/garment.png' );

答案 3 :(得分:2)

仅为img字段添加转义符:

$sql = "insert into q_links values ( 'garment.png', '".mysql_real_escape_string( 'imgs\ques\p1\garment.png' )."' );"

答案 4 :(得分:1)

I can be like this:
$img=addslashes("imgs\ques\p1\garment.png");
$sql=insert into q_links values('garment.png',$img);
and while retriving you can use stripslashe();

答案 5 :(得分:1)

您可以使用此代码在数据库中输入图片网址

$url =mysql_real_escape_string('imgs\ques\p1\garment.png');
$sql = "insert into q_links values ( 'garment.png', '".$url."' );

如果您执行查询: 插入q_links值('garment.png','imgs \ ques \ p1 \ garment.png');

它将成功插入数据库

答案 6 :(得分:0)

使用PDO。无论如何,{@ 1}}已被弃用。

mysql_

使用PDO,您可以准备语句,然后使用所需的exacte变量调用它。它会逃避一切。