UPDATE anggota SET id = '1000',name = 'Danti',Address = 'Jalan Mawar' WHERE Kode_anggota='10000'
我使用$_GET
作为我的表名,所以我可以对所有表使用查询,这是我的代码:
<?php
function updateData($value) {
$table = $_GET['tujuan'];
$id = $_GET['id'];
$query1 = mysql_query("SELECT * FROM $table ORDER BY Kode_$table");
$fieldNum = mysql_num_fields($query1);
for($q=0;$q<$fieldNum;$q++){
$fieldName = mysql_field_name($query1, $q);
$name [] = $fieldName;
}
$output1 = explode (" ",$name);
foreach ($value as $arrVal) {
$total [] = $arrVal;
}
$output = explode("", $total);
echo "UPDATE $table SET";
for($a=0;$a<$fieldNum;$a++){
$akhir = "$output1".$a." = $output".$a."";
$akhir1 [] = $akhir;
}
$akhir2 = implode (",",$akhir1);
echo $akhir2;
echo " WHERE Kode_$table='$id'";
}
?>
但是,当我运行我的程序时,我收到了2个这样的通知 - &gt;
警告:explode()期望参数2为字符串,数组在第88行的C:\ xampp \ htdocs \ Proyek 2 \ cobalagi \ koneksi_class.php中给出
警告:explode()要求参数2为字符串,在第93行的C:\ xampp \ htdocs \ Proyek 2 \ cobalagi \ koneksi_class.php中给出数组 UPDATE anggota SET0 = 0,1 = 1,2 = 2在哪里Kode_anggota =&#39; 10000&#39;
我该怎么办?
答案 0 :(得分:2)
因此,$output1 = explode (" ",$name);
应为$output1 = implode(" ",$name);
$output = explode("", $total);
应为$output = implode(" ", $total);
答案 1 :(得分:1)
$ name是一个数组,因而错误
你不需要爆炸功能
答案 2 :(得分:0)
这有各种严重的问题。正如Nuriddin Rashidov所指出的,错误的技术原因是你滥用了explode()函数。
更重要的是,基于客户端提供的数据,您正在为自己的查询构建打开严重的SQL注入漏洞。请检查这些关键字并考虑使用预准备语句并重新考虑数据库体系结构,以避免在运行时指定表名。