Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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中存储URL_Php_Mysql - Fatal编程技术网

Php 在mysql中存储URL

Php 在mysql中存储URL,php,mysql,Php,Mysql,我想从php执行一个mysql查询 $sql = insert into q_links values ( 'garment.png', 'imgs\ques\p1\garment.png' ); 我无法按原样存储url,而是按如下方式存储:imgsquesp1garment.png。但是我想像这样存储url:imgs\ques\p1\garment.png。所以我试了一下: $sql = mysql_real_escape_string($sql); 但是这样我的$sql看起来像: ins

我想从php执行一个mysql查询

$sql = insert into q_links values ( 'garment.png', 'imgs\ques\p1\garment.png' );
我无法按原样存储url,而是按如下方式存储:
imgsquesp1garment.png
。但是我想像这样存储url:
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以供以后使用。url是
imgs\ques\p1\garment.png
。我怎样才能做到这一点

更新: 我试着用对我有用的第一条评论

因此解决方案是:

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

不要逃避单引号,只有
\

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

为什么不将其存储为正斜杠呢

$sql = insert into q_links values ( 'garment.png', 'imgs/ques/p1/garment.png' );
作为旁注,mysql_*函数已被弃用,您应该使用或来转换为已准备好的语句

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();

使用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,您可以准备语句,然后使用所需的exacte变量调用并执行它。您可以使用此代码在数据库中输入图像url

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();
$url =mysql_real_escape_string('imgs\ques\p1\garment.png');
$sql = "insert into q_links values ( 'garment.png', '".$url."' );
如果执行查询: 插入q_链接值('garment.png'、'imgs\ques\p1\garment.png')


它将成功地在数据库中插入

添加仅用于img的转义字段:

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

$sql=“插入q_链接值('garment.png',”);“
最简单的方法对我有效。谢谢:)@CoolBrain请接受最佳答案。@DainisAbols-请将此评论作为答案发布,以便我可以接受您的答案。此操作将失败。你还没有把你的书装订好variables@DarylGill不需要装订。作品perfectly@DarylGill他将它们传递给execute,execute绑定了它们:请不要再使用
mysql.*
命令,它们在PHP7中是不安全的并被删除了!请继续编辑您的答案以包含此事实。我建议使用
mysqli\u real\u escape\u string
(注意
mysqli
末尾的
I
)。
i
表示改进,也保留在PHP7中。