Error de inserción de comillas simples de MySQL

De acuerdo, tengo un formulario en un foro hecho desde cero. Estoy usando NBBC para analizar BBCode para el foro. Aquí está el código. Mi objective principal es transformar las comillas simples en entidades html. He intentado muchas cosas, incluyendo htmlentities () también. Aquí está el mensaje de error generado:

ERROR [1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 

Y aquí está el código actual. Estoy dando 2 de los códigos que necesitan volver a verificar.

add_topic.php (Snippet)

 require_once("nbbc/nbbc.php"); $bbcode = new BBCode; $topic=$_POST['topic']; $detail=htmlspecialchars($_POST['detail']); $c_detail=$bbcode->Parse($detail); $name=$_POST['name']; $c_name=htmlspecialchars($name, ENT_QUOTES); $c_topic=htmlspecialchars($topic, ENT_QUOTES); $datetime=date("d/m/yh:i:s"); //create date time $sql=("INSERT INTO $tbl_name(topic, detail, name, datetime)VALUES('$c_topic', '$c_detail', '$c_name', '$datetime')"); $result=mysql_query($sql); if($result){ echo "Successful
"; echo "View your topic"; } else { echo "ERROR [" . mysql_errno() . "] " . mysql_error(); }

add_answer.php

 require_once("nbbc/nbbc.php"); $bbcode = new BBCode; $a_name=$_POST['a_name']; $a_subject=$_POST['a_subject']; $a_answer=$bbcode->Parse($_POST['a_answer']); $ac_name=htmlspecialchars($a_name, ENT_QUOTES); $ac_subject=htmlspecialchars($a_name, ENT_QUOTES); $datetime=date("d/m/y H:i:s"); // create date and time $sql2="INSERT INTO $tbl_name(question_id, a_id, a_name, a_subject, a_answer, a_datetime)VALUES('$id', '$Max_id', '$ac_name', '$ac_subject', '$a_answer', '$datetime')"; $result2=mysql_query($sql2); if($result2){ echo "Successful
"; echo "View your answer"; $tbl_name2="forum_question"; $sql3="UPDATE $tbl_name2 SET reply='$Max_id' WHERE id='$id'"; $result3=mysql_query($sql3); } else { echo "ERROR [" . mysql_errno() . "] " . mysql_error(); }

Para volver a aclarar todo lo que necesito es eliminar todas las tags html y cualquier otra etiqueta de scripting para ese asunto, analizar el BBCode y, finalmente, insertar los datos sin error.

prueba mysql_real_escape_string (). ¡Deberia trabajar!

http://php.net/manual/en/function.mysql-real-escape-string.php

Necesitas usar mysql-real-escape-string http://php.net/manual/en/function.mysql-real-escape-string.php – no htmlspecialchars