INSERT SQL 문에서 PHP 변수를 사용하려고합니다. 필자는 이전에 이것에 대한 답변을 보았지만 광산은 작동하지 않습니다. 여기 .. 코드이다SQL에서 PHP 변수 사용
mysql_query("INSERT INTO message (message_id, from, content) values ('', " . $uid . ", 'test message content')");
INSERT SQL 문에서 PHP 변수를 사용하려고합니다. 필자는 이전에 이것에 대한 답변을 보았지만 광산은 작동하지 않습니다. 여기 .. 코드이다SQL에서 PHP 변수 사용
mysql_query("INSERT INTO message (message_id, from, content) values ('', " . $uid . ", 'test message content')");
주요한 문제는 from
reserved word이며 역 따옴표에 있어야한다는 것이다.
mysql_query("INSERT INTO message (message_id, `from`, content) VALUES ...");
그러나 더 이상 사용되지 않는 mysql_*
기능을 사용하지 마시기 바랍니다. PDO를 살펴보고 매개 변수가있는 명령문을 준비하는 것이 좋습니다.
Ahhh .. 바보. Cant는 내가 직접 FROM 단어를 알아 차리지 못했다고 생각합니다. 고맙습니다! – TLD
MESSAGE_ID가 기본 키 인 경우, 당신은 당신이 값이 없으면 쿼리에 포함 할 필요가 없습니다 ..
mysql_query("INSERT INTO message (`from`, `content`) values (" . $uid . ", 'test message content')");
는 쿼리에서 적어도 세 가지 문제가 있습니다. 그 중 두 가지는 구문 오류이고 하나는 큰 취약점입니다. 다음과 같이
쿼리 작업을하려면, 당신이 그것을 작성해야 : 여기
mysql_query("INSERT INTO message (message_id, `from`, content) values ('', '" . $uid . "', 'test message content')");`
가 오류의 요약이다 :
당신은 ** 정말로 ** 이것을 원하지 않습니다. 대신 http://stackoverflow.com/search?q=parameterized+sql을보십시오. – Nate
SQL 주입 공격 및이를 방지하는 방법을 읽었습니다. 이것은 작동 할 수 있습니다. 그러나 당신은 공격자를 위해 매우 쉽게하기 때문에 이러한 것들에 대해 방어하고 있는지 확인해야합니다. 네이트가 말했던 것입니다. 쿼리를 매개 변수화했습니다. – Charleh