gpt4 book ai didi

mysql - 工作 perl ascript 现在说 .DBD::mysql::db do failed: 你的 SQL 语法有错误;

转载 作者:行者123 更新时间:2023-12-01 00:05:27 24 4
gpt4 key购买 nike

我得到了这个 perl 脚本,直到最近它还可以正常工作。我收到此错误消息。

DBD::mysql::db 执行失败:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本对应的手册,了解在“”附近使用的正确语法) ON DUPLICATE KEY UPDATE value=''' at line 2 at import_productfeatures.pl line 71.DBD::mysql::db 做失败:你的 SQL 语法有错误;检查与您的 MySQL 服务器版本对应的手册,了解在“”附近使用的正确语法) ON DUPLICATE KEY UPDATE value=''' at line 2 at import_productfeatures.pl line 71.

foreach my $feature (@features) {
my $cat_featureid = $feature->{CategoryFeature_ID};
my $value = $feature->{Presentation_Value};
my $sql = "INSERT INTO products_features (product_id, feature_id, value)
VALUES (".$prodid.", ".$cat_featureid.", ".$dbh->quote($value).")
ON DUPLICATE KEY UPDATE value=".$dbh->quote($value);
$dbh->do($sql);
}

最佳答案

您应该使用占位符,而不是将值直接放入字符串中:

my $sql = "INSERT INTO products_features (product_id, feature_id, value) 
VALUES (?,?,?)
ON DUPLICATE KEY UPDATE value=?";
my $sth = $dbh->prepare($sql);

foreach my $feature (@features) {
my $cat_featureid = $feature->{CategoryFeature_ID};
my $value = $feature->{Presentation_Value};

$sth->execute($prodid,$cat_featureid,$value,$value);
}

$sth->finish();

DBI 将为您处理正确的转义。

关于mysql - 工作 perl ascript 现在说 .DBD::mysql::db do failed: 你的 SQL 语法有错误;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13671195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com