Solución:
Su cadena sql será:
INSERT INTO `table` (`row1`) VALUES ('google's site')
Lo cual no es una afirmación válida. Como escribió Nanne, escape la cadena al menos con mysql_real_escape_string: http://php.net/manual/en/function.mysql-real-escape-string.php
Y lea sobre la inyección de SQL http://en.wikipedia.org/wiki/SQL_injection
Piensa un poco: si alguien publica esto: $_POST['text']
con valor: ');delete from table;....
Puedes despedirte de tus datos 🙂
¡Siempre filtrar / escapar de la entrada!
EDITAR: A partir de PHP 5.5.0, mysql_real_escape_string y la extensión mysql están en desuso. Utilice la extensión mysqli y la función mysqli :: escape_string en su lugar
Siempre use al menos mysql_real_escape_string cuando agregue valores proporcionados por el usuario en la base de datos. Debe buscar en los parámetros de enlace o mysqli para que su consulta se convierta en:
INSERT INTO `table` (`row1`) VALUES (?)
Y ? sería reemplazado por el valor real después de desinfectar la entrada.
En su caso utilice:
$result = mysql_query("INSERT INTO `table` (`row1`) VALUES ('".mysql_real_escape_string($_POST['text'])."') ") or die(mysql_error());
Lea sobre la inyección de SQL. ¡Vale la pena hacerlo bien lo antes posible!
Escapar de la cuerda: D
http://php.net/manual/en/function.mysql-real-escape-string.php