이 내가삽입 쿼리 문제는
mysql_query(insert into table1 set saltval = 'Y'Z' where uid ='1');
하지만 난 Y'Z입니다 필드 saltval의 값 becaues 작동하지 않습니다 다음 삽입 쿼리를 사용하고 간단한 하나입니다. 내 질문은이 값을 문자열로 간주하는 방법입니다.
이 내가삽입 쿼리 문제는
mysql_query(insert into table1 set saltval = 'Y'Z' where uid ='1');
하지만 난 Y'Z입니다 필드 saltval의 값 becaues 작동하지 않습니다 다음 삽입 쿼리를 사용하고 간단한 하나입니다. 내 질문은이 값을 문자열로 간주하는 방법입니다.
작은 따옴표를 백 슬래시로 이스케이프 처리해야합니다.
mysql_query("insert into table1 set saltval = 'Y\'Z' where uid ='1'");
그러나 SQL은 유효하지 않습니다 ... 업데이트 하시겠습니까? Insert 문에는 where가 없습니다. 값은 사용자의 입력에서 오는 경우
http://www.php.net/manual/en/function.mysql-real-escape-string.php
$string = mysql_real_escape_string("Y'Z");
mysql_query("insert into table1 set saltval = '{$string}' where uid ='1'");
항상 이것에 대한 mysql_real_escape_string()
기능을 사용하여 입력이 사용자의 경우, 당신은는 mysql_real_escape_string()를 사용한다, 다른 답변에서 언급 한 바와 같이
$query="insert into table1 set saltval = '".mysql_real_escape_string($InputVal)."' where uid ='1'";
http://php.net/manual/en/function.mysql-real-escape-string.php
다음에 백 슬래시를 추가해야합니다. 문자열을 SQL 구문 규칙에 맞추기위한 특정 문자.
동적으로 쿼리를 작성한다고 가정하면 PHP는이를 위해 특별한 이스케이프 기능을 가지고 있으므로 쿼리에는 인용 부호가 붙은 모든 문자열 (예외 없음)을 에 사용해야합니다.
그래서,이 같은 코드를 작성 :
$salt = "Y'Z";
$id = 1;
$salt = mysql_real_escape_string($salt);
$id = mysql_real_escape_string($id);
$sql = "update table1 set saltval = '$salt' where uid ='$id'";
mysql_query($sql) or trigger_error(mysql_error()." ".$sql);
가 안전하고 결함 허용
를 만들기 위해