【发布时间】:2015-07-01 21:16:02
【问题描述】:
我正在尝试在我的表单中实现 Summernote 所见即所得编辑器,当我提交表单以写入 mssql 表时,它接受大多数特殊字符 ($%! etc) 甚至双引号很好,但是当我尝试使用单引号时,我得到一个 sql 错误。你能帮我解决我错过的问题吗?
第一行实现插件
<textarea name="majorupdate" id="summernote" rows="10" class="form-control"></textarea>
在将其发布到使用以下值的第二个页面时(删除了一些不相关的条目以使其简单)
$majorupdateX = $_POST['majorupdate'];
$query = mssql_query("INSERT INTO PRJ_Update1 (update1) VALUES ('$majorupdateX') ");
从sql表中回调entry时,页面上显示是这样的
echo '<p>'.$row[update1].'</p>';
我怀疑我需要以某种方式替换转义 html 等效项的特殊字符?不知道如何最好地做到这一点,作为新手,我曾希望 Summernote 文本编辑器能够解决这个问题。我尝试在 POST 值上使用 htmlspecialchars() 函数,但没有成功。可能是我没有正确使用它。
错误
Warning: mssql_query() [function.mssql-query]: message: Line 1: Incorrect syntax near 's'. (severity 15) in C:\WPServer\Web\dev\Rehan\ProjectTracker\PR_projectUpdates1_formpost.php on line 47
Warning: mssql_query() [function.mssql-query]: message: Unclosed quotation mark before the character string ') '. (severity 15) in C:\WPServer\Web\dev\Rehan\ProjectTracker\PR_projectUpdates1_formpost.php on line 47
【问题讨论】:
-
“当我尝试使用单引号时,我得到一个 sql 错误回来” - 是吗?分享。如果我们不知道错误是什么,我们将无能为力。
-
- 转义/清理您的数据
-
根据您的编辑,请参阅评论 #2 ;-) 咨询 stackoverflow.com/q/60174 或使用准备好的语句。
-
除了在安全性(SQL 注入)方面要好得多之外,使用准备好的语句无论如何都会转义所有数据。此外,我强烈建议您转到 Microsoft PHP Drivers for SQL Server:microsoft.com/en-gb/download/details.aspx?id=20098,因为这将允许参数化查询。然后在此处查看 BOL:php.net/manual/en/book.sqlsrv.php。 @Fred-ii- 你不能来这里!你是罗慕兰人! ;)
-
尝试使用这里建议的参数化查询; stackoverflow.com/questions/15840642/…
标签: php sql-server wysiwyg summernote