Php 在mysql中存储URL
我想从php执行一个mysql查询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
$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中。