php函数从mysql表中选择数据

php函数从mysql表中选择数据,php,mysql,function,Php,Mysql,Function,我使用以下函数从MYSQL数据库中选择数据: if (!function_exists('select_array_where')) { function select_array_where($what, $from, $where){ $mysqli = new mysqli("host", "user", "password", "db"); if ($mysqli->connect_errno) { echo "<br>Failed to connect to

我使用以下函数从MYSQL数据库中选择数据:

if (!function_exists('select_array_where')) {
function select_array_where($what, $from, $where){

$mysqli = new mysqli("host", "user", "password", "db");
if ($mysqli->connect_errno)
{
    echo "<br>Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error . "<br>";
}

$result = $mysqli ->query("SELECT $what FROM $from WHERE $where");

$array = Array();

while ($row = mysqli_fetch_assoc($result)) {
  $array[] =  $row[$what];
}

print_r ($array);
return $array;
}
}
但它在以下情况下不起作用:

  $company_int_array = array();
  $company_int_array =& select_array_where("amount, perc", "inter_company", "transaction_type='interest'");
我有一种感觉,它与标点符号有关,我试过电影逗号“和‘四处,进进出出,但没有任何帮助


有人知道我做错了什么吗?

好吧,你必须更换线路: $array[]=$row[$what]; 下面的句子:

 $Whatsarr = explode ($what);
 Foreach ($what as $col)
 $aux[$col] = $row [$col];
 $array []= $aux:
你的问题是

 $array[] = $row[$what];
正在评估

 $array[] = $row['amount perc'];
这是无效的,因为您没有一个名为
'amount,perc'
的列

最简单的解决办法是改为

$array[] = $row;
这相当于

$array[] = array('amount'=>$row['amount'], 'perc'=>$row['perc']);

但是不要求您知道/指定实际的列名/键

无论如何,请您复制收到的错误消息好吗?添加一个try..catch也是一个好主意。注意:未定义的索引:“amount”,“perc”
“amount,perc”,
这些需要分开“,不起作用,相信我只能有三件事介于”和“之间,因为函数的定义方式($what、$from和$where)尝试在每个单词周围使用勾号
`
数量,perc
和现有引号,或者包装整件事。这如何解决OP在这一行的问题-
数组[]=$row[$what]?这将计算为
array[]=$row['amount','perc'],无效。正确,这无助于我已修复我的答案您的编辑更接近,但这将每次为每列创建一个新的数组元素。因此,如果数据库中有2列3行,那么将有6个数组元素,每个数组元素中有1个键/值对,而不是3个数组元素,每个数组元素中有2个键/值对。您执行它是为了知道这一点吗?!请注意,Foreach循环仅包括itLuvin“that green;-)后面的第一行干得好,肖恩。
$array[] = array('amount'=>$row['amount'], 'perc'=>$row['perc']);