我还在学习PHP和MYSQL,并尝试制作一个程序来列出数据库中的所有表格和数据(已完成),编辑选定的行(已完成),现在在所选表格上添加新记录。现在问题在于可变数量的字段。表可以有3个字段,可以是4个,依此类推。在我的代码中,$ getValue是一个数组。我打印它只是为了测试。它看起来像“Array([name] => Tomas [lastName] => Timas)”或“Array([stufName] => Phone [stufPrice] => 58 [comments] =>我的新手机)” $ getTable返回要插入的表的名称。 这必须是表上的新记录,因此stufID或nameID或任何ID都将为NULL 如果我不知道值的数量,我如何使用“INSERT INTO table VALUES(value1,value2,value3,...)”?
<?php
include "conf.ini"; //connection to the db
$getValue=$_REQUEST['value'];
$getTable=$_REQUEST['table'];
// test********************
print_r($getValue);
print '<br>';
print $getTable;
// test********************
if (!$_POST['submit']) {
print 'Please input data';
} else {
mysql_query ("INSERT INTO $getTable VALUES (?????)");
}
?>
答案 0 :(得分:1)
我希望你知道这是非常危险,所以只有当你确定没有潜在的攻击者时才这样做!
$all_keys = array_keys($getValue);
$getValue = array_map('mysql_real_Escape_string', $getValues);
mysql_query ("INSERT INTO $getTable (`".implode('`,`', $all_keys)."`) VALUES ('".(implode(",", $getValue))."')");
答案 1 :(得分:1)
$values = array_map('mysql_real_escape_string', array_values($getValue));
$keys = array_keys($getValue);
mysql_query("INSERT INTO $getTable (".implode(',', $keys).") VALUES ('".implode('\',\'', $values)."')");
答案 2 :(得分:0)
也许您应该创建一个包含文件来执行$ gettables的值,然后它包含您希望获取$ gettables值的位置。