• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

وارد کردن single qoute ' در دیتابیس؟!

shahramg

Registered User
تاریخ عضویت
27 مارس 2005
نوشته‌ها
64
لایک‌ها
0
محل سکونت
ir/teh
سلام
میخوام تو یه دیتابیس access با asp یه متنی وارد کنم که توش کاراکتر ' باشه. وقتی متن عادی باشه بجای
کد:
 query="insert into ..... values ('" & text & "')"
مینویسم
کد:
 query="insert into ... values (""" & text & """)"
و text رو هم قبلش htmlEncode میکنم. ولی وقتی که text یه متن html باشه، نمیشه htmlEncode کرد یعنی دیگه به درد نمیخوره؟
حالا با این وضع چیکار کنم که بشه یه متن html که هم ' و هم " توش داره رو تو دیتابیس وارد کرد؟
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
بجاي استفاده مستقيم از ' يا " از chrw(39) يا chrw(34) استفاده كن
 

shahramg

Registered User
تاریخ عضویت
27 مارس 2005
نوشته‌ها
64
لایک‌ها
0
محل سکونت
ir/teh
به نقل از mazoolagh :
بجاي استفاده مستقيم از ' يا " از chrw(39) يا chrw(34) استفاده كن
ممنون از کمکت. بجای اونا میشه از اونا استفاده کرد ولی خب چطوری؟ یعنی چطور کاراکترهای ' داخل متن رو به chr(39) تبدیل کنم؟ در هر صورت chr(39) موقع اجرای query همون ' دیده میشه. فکر کنم بهترین راه این باشه که که این کاراکتررو با یه کاراکتر دیگه عوض کنم، بعد دوباره موقع خوندن، برعکس...یه دستوری نیست که این کار رو بکنه؟
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
ميتوني از regular expression استفاده كني - مثلا كد زير در رشته text تمام ' ها رو به ~ و تمام " ها رو به ^ تبديل ميكنه:

PHP:
Dim RX
Set RX = New RegExp
RX.Global = True
RX.Pattern = Chrw(39)
text = RX.Replace(text, "~")
RX.Pattern = Chrw(34)
text = RX.Replace(text, "^")
 

shahramg

Registered User
تاریخ عضویت
27 مارس 2005
نوشته‌ها
64
لایک‌ها
0
محل سکونت
ir/teh
مرسی. این همونیه که میخواستم. اما من که با asp کار میکنم!!
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
به نقل از shahramg :
مرسی. این همونیه که میخواستم. اما من که با asp کار میکنم!!

خوب اون كد هم vbscript بود كه هم در client-side و هم در server-side كار ميكنه - كد پايين رو بعنوان يك صفحه asp اجرا كن!

کد:
<%
SQ = Chrw(39)
DQ = Chrw(34)
text = "[span dir=ltr] query=" & DQ & "insert into ... values (" & SQ & "SOME TEXT" & SQ & ")" & DQ & " [/span]"
response.write (text & "<br>")

Dim RX
Set RX = New RegExp
RX.Global = True

RX.Pattern = DQ
text = RX.Replace(text, "%")
response.write (text & "<br>")

RX.Pattern = SQ
text = RX.Replace(text, "~")
response.write (text & "<br>")

RX.Pattern = "%"
text = RX.Replace(text, DQ)
response.write (text & "<br>")

RX.Pattern = "~"
text = RX.Replace(text, SQ)
response.write (text & "<br>")
%>

و اين يكي رو بعنوان صفحه معمولي html:

HTML:
<html>
<head>
<script language="vbscript">
sub window_onload
SQ = Chrw(39)
DQ = Chrw(34)
text = "[span dir=ltr] query=" & DQ & "insert into ... values (" & SQ & "SOME TEXT" & SQ & ")" & DQ & " [/span]"
document.write (text & "<br>")

Dim RX
Set RX = New RegExp
RX.Global = True

RX.Pattern = DQ
text = RX.Replace(text, "%")
document.write (text & "<br>")

RX.Pattern = SQ
text = RX.Replace(text, "~")
document.write (text & "<br>")

RX.Pattern = "%"
text = RX.Replace(text, DQ)
document.write (text & "<br>")

RX.Pattern = "~"
text = RX.Replace(text, SQ)
document.write (text & "<br>")
end sub
</script>
</head>
<body>
</body>
</html>
 

shahramg

Registered User
تاریخ عضویت
27 مارس 2005
نوشته‌ها
64
لایک‌ها
0
محل سکونت
ir/teh
میدونم عزیزم ولی ماهی رو هر وقت از آب بگیری تازس!
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
shahramg جان کوتاه بیا ! سعی کن با همین تاپیک های جدید سر خودتو گرم کنی !
نبش قبر حرامه !
 
بالا