0

我想在表格中插入网页(文本格式)

当我进行查询时,它给了我一个错误。但是当我删除网页(在字符串中)时,它可以工作。变量是 $comment 之一。消息的行是文本(不是 varchar(255))

$query_insert = "INSERT INTO [".$project."_spec].[IsMessage] (project, message, note) VALUES('".$project."', '".$comment."', '".$note."')";
       mssql_query($query_insert) or die(mssql_get_last_message() . "[ " . $query_insert . " ]");

有没有办法将 HTML 转换为文本?

谢谢

4

1 回答 1

0

您正在通过向查询中注入具有随机内容的变量来动态构建 SQL 代码:

$query_insert = "INSERT INTO ... VALUES('".$project."', '".$comment."', '".$note."')";
                                           ^^^^^^^^        ^^^^^^^^        ^^^^^

这样,在您无意中构建无效查询之前不会花费很长时间:

$project = "Foo";
$comment = "It isn't ready yet";
$note = "See John's notes";
$query_insert = "INSERT INTO ... VALUES('".$project."', '".$comment."', '".$note."')";
var_dump($query_insert);
// string(71) "INSERT INTO ... VALUES('Foo', 'It isn't ready yet', 'See John's notes')"
                                             ^      ^
                                Start string |      | End string... oops

我没有使用旧的 MSSQL 扩展,所以我不知道你应该如何解决这个问题(显然,你不能!)但是有一个用户评论提出了一个自定义函数。你应该挂断stripslashes()电话,但其余的看起来是正确的(没有实际测试过)。

如果您碰巧使用 Windows 并且更改还为时不晚,则较新的SQLSRV提供了更好的功能集。

于 2013-02-05T16:09:34.110 回答