나는 지금 내 마음을 잃어 가고있다. 나는 무슨 일이 일어 났는지 모른다. 나는 사용자가 코멘트를 쓸 수있는 코드를 작성하고, 그것을 제출하자마자 코멘트가 나타납니다. 프로그램을 가지고 놀기 전까지는 모든 것이 완벽하게 작동했습니다. 매우 큰 주석을 썼을 때 주석 거품이 '확장'되지 않고 크기가 조정되었고 여기에 오류가 나타났습니다 (특히 if 조건에서) :Ajax 코드가 갑자기 작동하지 않습니까?
$query = "select user,comment,date from comments where user='$name' and comment='$comment'";
$select = mysqli_query($connection, $query);
if($row=mysqli_fetch_array($select))
{
$name=$row['user'];
$comment=$row['comment'];
$time=$row['date'];
거품 자체를 수정하고 싶었 기 때문에 오류 자체는 기억하지 못하기 때문에 CSS를 진행했습니다. 작업이 끝나면 아약스 부분을 제외하고는 모든 것이 제대로 작동하는 것으로 나타났습니다. 코멘트는 더 이상 제출되지 않았고 (페이지를 새로 고침해야 함) 오류가 더 이상 나타나지 않아서 정말 필사적입니다. 이전 코드와 현재 코드를 비교해 보았습니다. 일부 CSS 클래스를 제외하고는 똑같습니다. 너무 혼란 스럽습니다.
댓글이 너무 클 경우 오류가 표시 되었기 때문에 코드의 해당 부분 만 게시하지만 더 필요하면 알려주세요. 명세서 당
참고 : mysqli''에 객체 지향 인터페이스가 상당히 작 코드를 읽기 쉽고 감사하기 쉽도록 만들고, 쓸모없는 mysql_query 인터페이스와 쉽게 혼동하지 않는다. 절차 스타일에 너무 투자하기 전에 전환 할 가치가 있습니다. 예제 :'$ db = new mysqli (...)'과'$ db-> prepare ("...")'mysqli' API가 도입 된 PHP 4 시대의 절차 상 인터페이스는 새로운 것으로 사용되어서는 안된다. 암호. – tadman
** 경고 ** : mysqli를 사용할 때 [매개 변수가있는 쿼리] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)와 ['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php)를 사용하여 사용자 데이터를 쿼리에 추가하십시오. ** 심각한 [SQL injection bug] (http://bobby-tables.com/)를 만들었 기 때문에 문자열 보간이나 연결을 사용하여 **이를 수행하지 마십시오. **'$ _POST','$ _GET' 또는 ** 모든 ** 사용자 데이터를 쿼리에 직접 넣지 마십시오. 실수로 누군가를 악용하려는 경우 매우 위험 할 수 있습니다. – tadman
주 : 한 번만 사용되는 쓰레 걸기 변수에서 SQL 문을 선언하는 습관을 시도해보십시오. 질의가 함수에 직접 제공되는 코드를 따르는 것이 훨씬 쉽고, 시각적으로 유사한'$ sql8 '대신에'$ sql3'을 엉망으로 만들거나 보내지 않아도됩니다. – tadman