更新 SQL 查询 - 将值设置为 PHP 字符串变量

发布于 2024-10-30 18:52:29 字数 325 浏览 1 评论 0原文

这可能是一个非常微不足道的问题,但我已经为此苦苦挣扎了一段时间,也尝试在网上寻找答案,但仍然出现错误。

尝试为 PHP/MySql 表单编写一个简单的 UPDATE 查询:

  $sql="UPDATE mytable SET numericValue = '".$someid."', description =  '".$sometext."' WHERE id='".$myid."' ";

虽然所有数值都可以很好地传递和更新,但我无法获得正确的描述。描述列是 VARCHAR,$sometext 是一个字符串,我无法正确将其转义/用引号括起来。

This is probably a very trivial question but I've been struggling with it for a while and also tried finding answers online and still getting errors.

Trying to write a simple UPDATE query for a PHP/MySql form:

  $sql="UPDATE mytable SET numericValue = '".$someid."', description =  '".$sometext."' WHERE id='".$myid."' ";

Whilst all numeric values are being passed and updated fine, I can't get the description right. The description column is a VARCHAR and $sometext is a string and I cant get it escaped / wrapped with quotes correctly.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

她说她爱他 2024-11-06 18:52:29

您应该使用 sprintf,它通过提供占位符(%d 表示小数,%s 表示字符串)来避免字符串混淆。有关更多信息,请参阅手册

$sql= sprintf("UPDATE mytable SET numericValue = %d, description = '%s' WHERE id = %d", $someid, $sometext, $myid);

如果 $someText 来自 GET/POST/.. 你应该在它周围包裹一个 mysql_real_escape_string() 以防止 SQL 注入(或使用 PDO 准备好的语句)。

You should make use of sprintf, it avoids string confusion by providing placeholders (%d for decimals, %s for strings). See the manual for more.

$sql= sprintf("UPDATE mytable SET numericValue = %d, description = '%s' WHERE id = %d", $someid, $sometext, $myid);

If $someText is coming from GET/POST/.. you should wrap a mysql_real_escape_string() around it to prevent SQL injection (or use PDO prepared statements).

谈场末日恋爱 2024-11-06 18:52:29
$sql="UPDATE mytable SET numericValue = '$someid' , description = '$sometext' WHERE id='$myid' ";

我认为你必须担心sql注入。

$sql="UPDATE mytable SET numericValue = '$someid' , description = '$sometext' WHERE id='$myid' ";

I think you have to worry about sql injection.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文