2013-06-11 2 views
2

mysql 쿼리 등에서 일부 코드를 읽었으며 PHP 백틱과 비슷한 종류의 "use"을 사용했습니다. 나는 그것들이 의미하는 바를 알고 싶었고, 그들의 공식 명칭과 그것들을 사용하는 방법이나 방법에 관한 mysql 레퍼런스에 대한 링크를 궁금해했다.업데이트 쿼리 문에서 MySql/PHP 눈금 표시

는 그것은 역 따옴표 운영자
+0

는 예약어에 HTTP ([필드 이름 주위에 역 따옴표를 사용하여 목록] –

+2

가능 중복 될 수있는 열 이름을입니다 : // 유래 .com/questions/261455/using-backticks-around-field-names) –

+0

다음을 확인하십시오. [Google] (https://www.google.com.au/#gs_rn=17&gs_ri=psy-ab&tok=AIbLUi403MmFNnBWKP3ZHw&suggest=p&cp = 16 & gs_id = 2 & xhr = t & q = 아포스트로피 + mysql & es_nrs = true & pf = p & output = 검색 & sclient = psy-ab & oq = apostro & bvm = bv.47810305, d.dGI & fp = 3f16c0639275e9a0 & biw = 1600 & bih = 839) –

답변

3

있어 및 탈출 단어로 사용된다

$update = mysql_query ("UPDATE tablename SET (column1,`".$EXPfields."`) =('$something','".$EXPvalues."') 

WHERE .... ") : 여기

내가 무슨 말을하는지의 예입니다 MySQL의 SQL 언어에서 예약어 인 필드 나 테이블 이름을 참조하거나 공백과 같은 유효하지 않은 문자가 포함되어있는 경우 select이라는 테이블과 select이라는 테이블이있는 경우 th 입니다 :

select `select` from `select` 

역 따옴표는 MySQL이 정확하게 단어의 의미에 혼란을받지 않고 작업 쿼리로이를 분석 할 수 있습니다.

Official documentation is here.

+0

답변 해 주셔서 감사 드리며 실제로는 실제 문서에 대한 링크입니다. –

0

MySQL에는 테이블 또는 열 이름으로 사용할 수없는 Reserved Words이 있습니다. 전문적으로 backticks를 사용하는 것이 절대적으로 필요한 유일한 곳은 이름에 대해 예약어 중 하나가있는 테이블이나 열이있는 경우입니다. 이것은 MySQL에게 이름을 예약어로 해석해서는 안되며 단순히 테이블/컬럼 이름으로 해석해야한다고 알려줍니다.

그러나 실제로는 테이블/열 이름과 함수, 피연산자 및 SQL의 다른 구문을 구별하는 데 도움이되므로 항상 백틱을 사용하는 것이 좋습니다. 그들은 본질적으로

1

에 대한 더 많은 정보를 가지고 그것을 유효하지 않은 SQL을 만들 것 문자가 포함 된 변수를 따옴표. 이름에서 알 수 있듯이, 그 목적은 식별자 (열, 테이블 ... 이름)를 인용하여 mysql이 의미하는 바를 이해하도록하는 것입니다.

당신은 mysql page about identifiers (검색 역음)에서 그들에 대한 몇 가지 문서를 찾을 수 있습니다

가 도움이 될

명백한 예를 들어 당신의 열/테이블 이름으로 공백 또는 예약어 (둘 다 실망하는 관행을 포함하는 경우 way)

// error, since order is a reserved word 
SELECT order FROM table 
// works, the column name is quoted 
SELECT `order` FROM table 

// error, since there is a space 
SELECT field FROM my table 
// works, the column name is quoted 
SELECT field FROM `my table` 

이들을 사용하면 단점이 없으며 mysql이 쿼리를 구문 분석하는 데 도움이됩니다.

좀 더 정보를 정기적으로 :

Benefits of using backtick (`) in MySQL queries? [dba.stackexchange.com]

Using backticks around field names [stackoverflow.com]