php中的SQL数组值
嗨,我对php/mysql真的很陌生 我正在做一个php/mysql学校项目,在一个表中有39个字段。 我想缩短我的代码,特别是在执行sql查询时php中的SQL数组值,php,mysql,Php,Mysql,嗨,我对php/mysql真的很陌生 我正在做一个php/mysql学校项目,在一个表中有39个字段。 我想缩短我的代码,特别是在执行sql查询时 $sql = "INSERT into mytable ('field_1',...'field_39') Values('{$_POST['textfield_1']}',...'{$_POST['textfield_39']}')"; 我不知道该如何解决这个问题,但我想知道: $sql = "Insert into mytable ("----
$sql = "INSERT into mytable ('field_1',...'field_39') Values('{$_POST['textfield_1']}',...'{$_POST['textfield_39']}')";
我不知道该如何解决这个问题,但我想知道:
$sql = "Insert into mytable ("----all fields generated via loop/array----") Values("----all form elements genrated via loop/array---")";
先谢谢你 您可以使用内爆:
<?php
$sql = "Insert into mytable (";
for ($i = 1; $i < 40; $i++) {
if ($i == 39) {
$sql .= "field_$i";
} else {
$sql .= "field_$i,";
}
}
$sql .= "Values(";
for ($i = 1; $i < 40; $i++) {
if ($i == 39) {
$sql .= "'" . $_POST[textfield_$i] . "'";
} else {
$sql .= "'" . $_POST[textfield_$i] . "',";
}
}
?>
$sql = "
INSERT into mytable
('" . implode("', '", array_keys($_POST) . "')
VALUES
('" . implode("', '", $_POST . "')";
(假设POST数组的索引也是db表字段的名称)
但是,这是非常不安全的,因为您会直接将post数据插入数据库
因此,您至少应该事先转义这些值,并确保它们是ok/有效的表字段:
// Apply mysql_real_escape_string to every POST value
array_walk($_POST, "mysql_real_escape_string");
及
您可以使用内爆:
$sql = "
INSERT into mytable
('" . implode("', '", array_keys($_POST) . "')
VALUES
('" . implode("', '", $_POST . "')";
(假设POST数组的索引也是db表字段的名称)
但是,这是非常不安全的,因为您会直接将post数据插入数据库
因此,您至少应该事先转义这些值,并确保它们是ok/有效的表字段:
// Apply mysql_real_escape_string to every POST value
array_walk($_POST, "mysql_real_escape_string");
及
例如:
试试这个,我想它会有用的
例如:
试试这个,我想它会有用的
<?php
$sql=“插入mytable(”
对于($i=1;$i<40;$i++){
}
} else {
if(is_int($_POST[textfield_$i])){
$sql .= $_POST[textfield_$i] .",";
}
else{
$sql .= "'" . $_POST[textfield_$i] . "',";
}
}
$sql.=“值(”
对于($i=1;$i<40;$i++){
如果($i==39){
if(is_int($POST[textfield$i])){
$sql.=$POST[textfield$i];
}
否则{
$sql.=“'”$POST[textfield$i]。“'”;
}
} else {
if(is_int($_POST[textfield_$i])){
$sql .= $_POST[textfield_$i] .",";
}
else{
$sql .= "'" . $_POST[textfield_$i] . "',";
}
}
}
?>
它适用于数值。您可以在单引号中插入数值,但有时会产生一些问题
$sql=“插入mytable(”
对于($i=1;$i<40;$i++){
}
} else {
if(is_int($_POST[textfield_$i])){
$sql .= $_POST[textfield_$i] .",";
}
else{
$sql .= "'" . $_POST[textfield_$i] . "',";
}
}
$sql.=“值(”
对于($i=1;$i<40;$i++){
如果($i==39){
if(is_int($POST[textfield$i])){
$sql.=$POST[textfield$i];
}
否则{
$sql.=“'”$POST[textfield$i]。“'”;
}
} else {
if(is_int($_POST[textfield_$i])){
$sql .= $_POST[textfield_$i] .",";
}
else{
$sql .= "'" . $_POST[textfield_$i] . "',";
}
}
}
?>
它适用于数值。您可以在单引号中插入数值,但有时会产生一些问题我只提到插入记录,更新记录如何?我只提到插入记录,更新记录如何?对不起,先生,我不知道如何使用内爆()。我只知道基本的php/mysql。查看php文档,它对了解特定函数的详细信息非常有帮助:。内爆将一个包含指定值的值数组粘在一起:内爆($glue,$pieces);
对不起,先生,我不知道如何使用内爆()。我只知道基本的php/mysql。查看php文档,它对了解特定函数的详细信息非常有帮助:。内爆将一个包含指定值的值数组粘在一起:in爆($glue,$pieces);