我怎样才能结合这两个陈述?
How can I combine these two statements?
我目前正在尝试将数据从文本框插入数据库,$enter / $enter2 是写入文本的位置。
数据库由ID、name、nametwo三列组成
ID 自动递增并且工作正常
这两个语句本身都可以正常工作,但是因为它们是单独发布的,第一个将 nametwo 留空,第二个将 name 留空。
我试过将两者结合起来,但运气不佳,希望有人能提供帮助。
$dbh->do("INSERT INTO $table(name) VALUES ('".$enter."')");
$dbh->do("INSERT INTO $table(nametwo) VALUES ('".$enter2."')");
你应该阅读数据库手册。
查询应该是:
$dbh->do("INSERT INTO $table(name,nametwo) VALUES ('".$enter."', '".$enter2."')");
套用别人的话:
my $sth = $dbh->prepare("INSERT INTO $table(name,nametwo) values (?,?)");
$sth->execute($enter, $enter2);
因此您不必担心引用问题。
SQL语法是
INSERT INTO MyTable (
name_one,
name_two
) VALUES (
"value_one",
"value_two"
)
您生成 SQL 语句的方式非常脆弱。例如,如果 table 名称为 Values
或值为 Jester's
.
,它将失败
解决方案 1:
$dbh->do("
INSERT INTO ".$dbh->quote_identifier($table_name)."
name_one,
name_two
) VALUES (
".$dbh->quote($value_one).",
".$dbh->quote($value_two)."
)
");
解决方案 2:占位符
$dbh->do(
" INSERT INTO ".$dbh->quote_identifier($table_name)."
name_one,
name_two
) VALUES (
?, ?
)
",
undef,
$value_one,
$value_two,
);
我目前正在尝试将数据从文本框插入数据库,$enter / $enter2 是写入文本的位置。
数据库由ID、name、nametwo三列组成
ID 自动递增并且工作正常
这两个语句本身都可以正常工作,但是因为它们是单独发布的,第一个将 nametwo 留空,第二个将 name 留空。
我试过将两者结合起来,但运气不佳,希望有人能提供帮助。
$dbh->do("INSERT INTO $table(name) VALUES ('".$enter."')");
$dbh->do("INSERT INTO $table(nametwo) VALUES ('".$enter2."')");
你应该阅读数据库手册。
查询应该是:
$dbh->do("INSERT INTO $table(name,nametwo) VALUES ('".$enter."', '".$enter2."')");
套用别人的话:
my $sth = $dbh->prepare("INSERT INTO $table(name,nametwo) values (?,?)");
$sth->execute($enter, $enter2);
因此您不必担心引用问题。
SQL语法是
INSERT INTO MyTable (
name_one,
name_two
) VALUES (
"value_one",
"value_two"
)
您生成 SQL 语句的方式非常脆弱。例如,如果 table 名称为 Values
或值为 Jester's
.
解决方案 1:
$dbh->do("
INSERT INTO ".$dbh->quote_identifier($table_name)."
name_one,
name_two
) VALUES (
".$dbh->quote($value_one).",
".$dbh->quote($value_two)."
)
");
解决方案 2:占位符
$dbh->do(
" INSERT INTO ".$dbh->quote_identifier($table_name)."
name_one,
name_two
) VALUES (
?, ?
)
",
undef,
$value_one,
$value_two,
);