2013-01-31 20 views
6

Voglio eseguire una query mysql da php.URL del negozio in mysql

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

non ho potuto conservare l'url come è, anzi viene memorizzato in questo modo: imgsquesp1garment.png. Ma voglio memorizzare l'url come: imgs\ques\p1\garment.png. Così ho provato questo:

$sql = mysql_real_escape_string($sql); 

Ma in questo modo il mio $sql assomiglia:

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

che non funzionano nel database mysql.

Devo inserire questo URL nel database per un uso successivo. L'URL è imgs\ques\p1\garment.png. Come posso raggiungere questo obiettivo?

Aggiornamento: E ho provato con il primo commento che ha funzionato per me.

Quindi la soluzione è:

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

'$ sql = "INSERT INTO valori q_links ('garment.png', '" .mysql_real_escape_string (' imgs \ ques \ p1 \ garment.png '). "');" ' – Peon

+0

Il metodo più semplice ha funzionato per me. Grazie :) –

+0

@CoolBrain Si prega di accettare la risposta migliore. – crush

risposta

2

Aggiungere la fuga solo per il campo img:

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

Si prega di non utilizzare i comandi 'mysql_ *' più sono non sicuri e rimossi in PHP 7! – Peon

+0

Basta andare avanti e modificare la risposta per contenere questo fatto. Raccomando di usare 'mysqli_real_escape_string' (nota' i' alla fine di 'mysqli'). Il 'i' sta per essere migliorato, anche in PHP7. – DBX12

2

non sfuggono alla sola offerta, solo il \

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

Perché non conservarlo con le barre in quanto tale?

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

Non è che i backlashes siano proibiti in MySQL o qualcosa del genere ... –

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

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

Come nota a margine, il mysql_ * funzioni sono obsolete, e si dovrebbe passare a Le dichiarazioni preparate con mysqli_* o PDO.

Esempio in 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

Usa DOP. mysql_ è in ogni caso deprecato.

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

Utilizzando PDO si dovrebbe preparare la sua dichiarazione e quindi chiamare eseguirlo con la variabile exacte che si desidera. Sarebbe sfuggito tutto per te.

+0

Questo fallirà. Non hai vincolato le tue variabili –

+0

@DarylGill senza necessità di associazione. Funziona perfettamente –

+0

@DarylGill Li passa ad eseguire che li lega: 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

È possibile utilizzare questo codice per entrare immagine URL nel database di

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

se si esegue la query: inserto in valori q_links ('garment.png', 'IMG \ ques \ p1 \ garment.png ');

si inserirà con successo nel database

Problemi correlati