2013-01-31 87 views
6

我想從php執行mysql查詢。在mysql中存儲URL

$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')."');"; 
+2

'$ SQL = 「插入q_links值( 'garment.png',「」 .mysql_real_escape_string(' imgs \ ques \ p1 \ garment.png')。「');」' – Peon

+0

最簡單的方法適用於我。謝謝:) –

+0

@CoolBrain請接受最好的答案。 – crush

回答

2

添加逃跑只爲IMG場:

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

請不要使用'mysql_ *'命令他們不安全,並在PHP 7中刪除! – Peon

+0

只需繼續並編輯您的答案即可包含此事實。我建議使用'mysqli_real_escape_string'(注意'mysqli'末尾的'i')。 'i'代表改進,也保持在PHP7。 – DBX12

2

不要逃單引號,只有\

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

你爲什麼不將它存儲與正斜槓這樣?

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

這不是在MySQL或其他任何類似的情況下禁止反向... –

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

實施例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(); 
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,你會準備語句,然後調用你想要的exacte變量執行它。它會逃避一切爲你。

+0

這將失敗。你沒有綁定你的變量 –

+0

@DarylGill不需要綁定。完美地工作 –

+0

@DarylGill他通過它們來執行綁定它們:http://www.php.net/manual/en/pdostatement.execute.php – crush

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

您可以使用此代碼數據庫

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

輸入圖片URL,如果你執行查詢: INSERT INTO q_links值( 'garment.png',「IMGS \疑問句\ P1 \ garment.png');

它會在數據庫中插入成功