1. sql中什麼時候需要用雙引號,什麼時候用單引號
這就要從雙引號和單引號的作用講起:
1,雙引號裡面的欄位會經過編譯器解釋然後再當作HTML代碼輸出,但是單引號裡面的不需要解釋,直接輸出。例如:
$abc='I love u';
echo $abc //結果是:I love u
echo '$abc' //結果是:$abc
echo "$abc" //結果是:I love u
2,所以在對資料庫裡面的SQL語句賦值的時候也要用在雙引號裡面SQL="select a,b,c from ..."
3,但是SQL語句中會有單引號把欄位名引出來
例如:select * from table where user='abc';
這里的SQL語句可以直接寫成SQL="select * from table where user='abc'"
4,但是如果象下面:
$user='abc';
SQL1="select * from table where user=' ".$user." ' ";對比一下
SQL2="select * from table where user=' abc ' "
5,我把單引號和雙引號之間多加了點空格,希望你能看的清楚一點。
也就是把'abc' 替換為 '".$user."'都是在一個單引號裡面的。只是把整個SQL字元串分割了。
SQL1可以分解為以下3個部分
1:"select * from table where user=' "
2:$user
3:" ' "
字元串之間用 . 來連接。
2. sql語句什麼時候用雙引號或者單引號
估計你問的問題是在程序里寫代碼的時候有雙引號和單引號!~
雙引號表示
庫里的欄位是數值型的!~
而單引號是表示字元型的!~
select
*
from
table
where
a="text1.text"
and
b='"
text2.text"'"
3. sql語句什麼時候加引號
明顯不對。
select...是sql語句。
$_post...是php語句。
如果你寫的是sql語句,那就不能有$_post[]
如果你寫的是php語句,那就應該把其中的sql語句部分作為一般的字元串處理:
$sql = "select * from a where `name`=";
$sql .= $_post['name'];
然後再用php的sql library的function來運行這個字元串$sql
在純sql語句中,如 愛老婆 所說,欄位名加`或者什麼也不加;字元類型的數值加單引號。
在php語句中,由於sql部分被認為是字元串,所以要加單/雙引號。但因為sql語句中,本身可能包含單引號,所以為了分辨,必須用雙引號。
而$_post['name']的意思是,php在載入頁面的時候,把所有用html的post方法得到的變數都放入了一個叫_post的數組中。$_post['name']就是調用_post數組中,名稱為字元串name的那個變數的值。
4. sql語句中什麼時候加雙引號什麼時候不加雙引號查詢中加不加
關鍵字做列名時需要加雙引號,其他時候可以不加,一般加了雙引號則大小寫敏感
5. SQL查詢語句中單引號和雙引號的問題
是這樣的在SQL里字元型只能用單引號,雙引號是引用的鏈接資料庫的程序里的,如果要用雙引號,在SQL里要加個',要是要加單引號也一樣前面加個'所以就變成''',''了
6. 我的sql2005在查詢時總是需要在表名上加引號
網路知道就是被樓上的這種垃圾給搞壞的。。。找點書COPY過來有什麼意思。。。。。。。
-----------------------------
要防止SQL注入其實不難,你知道原理就可以了。
所有的SQL注入都是從用戶的輸入開始的。如果你對所有用戶輸入進行了判定和過濾,就可以防止SQL注入了。用戶輸入有好幾種,我就說說常見的吧。
文本框、地址欄里***.asp?中?號後面的id=1之類的、單選框等等。一般SQL注入都用地址欄里的。。。。如果要說怎麼注入我想我就和上面的這位「仁兄」一樣的了。
你只要知道解決對嗎?
對於所有從上一頁傳遞過來的參數,包括request.form 、request.qurrystring等等進行過濾和修改。如最常的***.asp?id=123 ,我們的ID只是用來對應從select 里的ID,而這ID一般對應的是一個數據項的唯一值,而且是數字型的。這樣,我們只需把ID的值進行判定,就可以了。vbs默認的isnumeric是不行的,自己寫一個is_numeric更好,對傳過來的參數進行判定,OK,搞定。演算法上的話,自己想想,很容易了。但是真正要做到完美的話,還有很多要計算的。比如傳遞過來的參數的長度,類型等等,都要進行判定。還有一種網上常見的判定,就是判定傳遞參數的那一頁(即上一頁),如果是正常頁面傳弟過來就通過,否則反之。也有對' or 等等進行過濾的,自己衡量就可以了。注意一點就是了,不能用上一頁的某一個不可見request.form("*")進行判定,因為用戶完全可以用模擬的形式「復制」一個和上一頁完全一樣的頁面來遞交參數。這樣,這招就沒用了。。。。
OK就說這么多,還不明白的話,找我。[email protected]
7. SQL中什麼情況下用引號
查詢條件為文本格式時要求用引號,如varchar、char類型等,反之數值格式不要加引號,如bit、double、float、int類型等。舉個例子slecet * from A where id='1'slecet * from A where id=1這兩個的區別在於第一條id是字元型的,第二條id為數值型的
8. sql建表語句中表名和類型加雙引號什麼意思
loginname
指的就是一個變數名<與資料庫里的欄位匹配>,
而'"+login1.username+"'
就是你輸入的值,
假如只有單引號,系統會認為變數就是login1.username,
而這個值是固定的,然而我們需要的是一個變數,
所以就得再加一個雙引號,
至於
『+』
就是連接字元串的意思、、、