6

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

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

我无法按原样存储 url,而是像这样存储它: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' )."' );";
4

7 回答 7

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();
于 2013-01-31T13:08:33.667 回答
2

仅为 img 字段添加转义:

$sql = "insert into q_links values ( 'garment.png', '".mysql_real_escape_string( 'imgs\ques\p1\garment.png' )."' );"
于 2013-01-31T13:52:25.277 回答
2

不要逃避单引号,只有\

$var = "insert into q_links values ( 'garment.png', 'imgs\\ques\\p1\\garment.png');"
于 2013-01-31T13:08:20.277 回答
2

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

$sql = insert into q_links values ( 'garment.png', 'imgs/ques/p1/garment.png' );
于 2013-01-31T13:08:27.407 回答
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();
于 2013-01-31T13:12:34.863 回答
1

您可以使用此代码在数据库中输入图像 url

$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');

它将成功插入数据库

于 2013-01-31T13:31:05.680 回答
0

使用 PDO。mysql_无论如何都已弃用。

    $params = array('value_one','value_two')
    $dbh = new PDO('credentials go here');
    $sql = 'insert into q_links values ( ?, ? );';
    $stmt = $dbh->prepare($sql);
    $stmt->execute($params);

使用 PDO,您将准备您的语句,然后使用您想要的确切变量调用执行它。它会为你逃脱这一切。

于 2013-01-31T13:09:10.603 回答