2013-01-31 29 views
6

Tôi muốn thực hiện truy vấn mysql từ php.URL cửa hàng trong mysql

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

Tôi không thể lưu trữ url vì nó được lưu trữ như thế này: imgsquesp1garment.png. Nhưng tôi muốn lưu trữ url như: imgs\ques\p1\garment.png. Vì vậy, tôi cố gắng này:

$sql = mysql_real_escape_string($sql); 

Nhưng cách này tôi $sql trông giống như:

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

mà không làm việc trong cơ sở dữ liệu mysql.

Tôi phải chèn url này vào cơ sở dữ liệu để sử dụng sau này. Url là imgs\ques\p1\garment.png. Làm thế nào tôi có thể đạt được điều này?

Cập nhật: Và tôi đã thử với nhận xét đầu tiên phù hợp với mình.

Vì vậy, giải pháp là:

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

'$ sql = "chèn vào giá trị q_links ('garment.png', '" .mysql_real_escape_string (' imgs \ ques \ p1 \ garment.png '). "');" ' – Peon

+0

Phương pháp dễ nhất làm việc cho tôi. Cảm ơn :) –

+0

@CoolBrain Vui lòng chấp nhận câu trả lời tốt nhất. – crush

Trả lời

2

Thêm lối thoát duy nhất cho lĩnh vực img:

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

Vui lòng không sử dụng lệnh 'mysql_ *' chúng không an toàn và bị loại bỏ trong PHP 7! – Peon

+0

Chỉ cần tiếp tục và chỉnh sửa câu trả lời của bạn để chứa thực tế này. Tôi khuyên bạn nên sử dụng 'mysqli_real_escape_string' (lưu ý' i' ở cuối 'mysqli'). 'I' là viết tắt của cải tiến, nó vẫn còn trong PHP7. – DBX12

2

không thoát khỏi dấu nháy đơn, chỉ có \

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

Tại sao bạn không lưu trữ nó với dấu gạch chéo như vậy?

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

Nó không phải là nếu backlashes bị cấm trong MySQL hoặc bất cứ điều gì như thế ... –

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

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

Là một mặt lưu ý, các mysql_ * chức năng đang bị phản đối, và bạn nên di chuyển để chuẩn bị phát biểu với mysqli_* hoặc PDO.

Ví dụ trong 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

Sử dụng PDO. mysql_ không được dùng nữa.

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

Sử dụng PDO bạn sẽ chuẩn bị câu lệnh và sau đó thực hiện lệnh đó với biến chính xác bạn muốn. Nó sẽ thoát khỏi tất cả cho bạn.

+0

Điều này sẽ thất bại. Bạn chưa liên kết các biến của mình –

+0

@DarylGill không cần ràng buộc. Hoạt động hoàn hảo –

+0

@DarylGill Ông vượt qua chúng để thực thi liên kết chúng: 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

Bạn có thể sử dụng mã này để nhập url hình ảnh trong cơ sở dữ liệu

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

nếu bạn thực hiện truy vấn: chèn vào giá trị q_links ('garment.png', 'imgs \ ques \ p1 \ garment.png ');

nó sẽ chèn thành công trong cơ sở dữ liệu

Các vấn đề liên quan