繁体   English   中英

PHP MYSQL'INSERT INTO $ table VALUES ...'可变数量的字段

[英]PHP MYSQL 'INSERT INTO $table VALUES …' variable number of fields

我仍然在学习PHP和MYSQL,并试图创建一个程序来列出数据库中的所有表和数据(已完成),编辑选定的行(已完成),现在在所选表上添加新记录。 现在问题在于可变数量的字段。 表可以有3个字段,可以是4个,依此类推。 在我的代码中,$ getValue是一个数组。 我打印它只是为了测试。 它看起来像“Array([name] => Tomas [lastName] => Timas)”或“Array([stufName] => Phone [stufPrice] => 58 [comments] =>我的新手机)”$ getTable返回要插入的表的名称。 这必须是表上的新记录,因此stufID或nameID或任何ID将为NULL如果我不知道数字,如何使用“INSERT INTO表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 (?????)");
}

?>

我希望你知道这是非常危险的 ,所以只有当你确定没有潜在的攻击者时才这样做!

$all_keys = array_keys($getValue);
$getValue = array_map('mysql_real_Escape_string', $getValues);
mysql_query ("INSERT INTO $getTable (`".implode('`,`', $all_keys)."`) VALUES ('".(implode(",", $getValue))."')");
$values = array_map('mysql_real_escape_string', array_values($getValue));
$keys = array_keys($getValue);        
mysql_query("INSERT INTO $getTable (".implode(',', $keys).") VALUES ('".implode('\',\'', $values)."')");

也许您应该创建一个包含文件来执行$ gettables的值,然后它包含您希望获取$ gettables值的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM