我正在寻找通过php和GET参数传递db表名和列名的可能性。
我有一个具有以下结构的数据网格: table_name1.column1,table_name2.column1,table_name2.column1。
网格有一个搜索功能,我需要这些参数。
从网址“?table_name1.column1=22
”我只通过$ _GET table_name1_column1=22
你会如何解决这个问题?
答案 0 :(得分:3)
使用base64对变量进行编码并在使用前进行解码。 我知道那很脏。
但php变量不支持句点(点)
答案 1 :(得分:0)
这是PHP的文档功能。它主要是因为PHP不能有带点的变量名。
$x.y = 1 // is an invalid variable name
答案 2 :(得分:0)
您可以使用php的serialize函数在url中传递文本“table_name1.column1”。但为此你需要做一些编码才能得到结果。下面我给出了你可以使用的代码:
<强> page1.php中强>
<?php
$test = serialize('table_name1.column1=11::table_name2.column2=22');
?>
<a href='Page2.php?qs=<?php echo $test?>'>test</a>
使用此$ test作为查询字符串传递。在上面的例子中,我传递了锚标记点击。
<强>使page2.php 强>
使用以下代码对查询字符串进行反序列化并使用这些值。
<?php
$test2 = unserialize($_GET['qs']);
$ex = explode('::',$test2);
$new_arr = array();
foreach($ex as $val)
{
$ex2 = explode('=',$val);
$new_arr[$ex2[0]] = $ex2[1];
}
echo $new_arr['table_name1.column1']; //print 11
echo $new_arr['table_name2.column2']; //print 22
?>
希望这会对你有所帮助:)。
答案 3 :(得分:-1)
您需要将每个参数与&
分开。
所以:?table=table_name1&column=column1