Php 为什么在mysql中选择列时显示数组?

Php 为什么在mysql中选择列时显示数组?,php,mysql,database,Php,Mysql,Database,我试图在php中选择mysql中的一列 function PageController() { $data = [ 'categories' => _db_get_select("categories", ['name']) ]; load_view("tutu", $data); 及 结果如下所示 字符串(42)“从.categories中选择['name']=数组。” 我想成为这样 从中选择名称。类别 提前感谢。您可以使用此脚本 function PageContr

我试图在php中选择mysql中的一列

function PageController() {

$data = [
    'categories'    => _db_get_select("categories", ['name'])

];
load_view("tutu", $data);

结果如下所示

字符串(42)“从.categories中选择['name']=数组。”

我想成为这样

从中选择名称。类别


提前感谢。

您可以使用此脚本

function PageController() {
$data = [
    'categories'    => _db_get_select("categories", "name")
];
load_view("tutu", $data);
功能将是

function _db_get_select($table_name, $columns) {
$servername = _c("database.server_name");
$username = _c("database.username");
$password = _c("database.password");
$dbname = _c("database.db_name");
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
 $sql = "SELECT {$columns} FROM  {$table_name}";
}

只需回显您的sql变量,而不是像下面这样的var dump

echo $sql;

使用foreach循环遍历列数组以形成查询

function PageController() {
    $data = array('categories' => _db_get_select("categories", array("name")));
    load_view("tutu", $data);
}
然后:

//Start with select
$sql = 'SELECT ';

//Concat column names separated with commas
foreach ($columns as $value) {
     $sql .= $value . ', ';
}

//Get rid of the last comma
$sql = rtrim($sql, ', ');

$sql .= ' FROM ' . $table_name;
检查是否正常:

var_dump($sql);

它起作用了,兄弟,你能告诉我为什么我不能使用像['name'这样的数组吗;不管怎么说,谢谢你为什么使用双数组,先生,我不明白。它允许我向你的函数传递更多的数据。例如,我可以执行
\u db\u get\u select(“categories”,array(“name”=>“tech”))
,然后如果修改函数,它将返回名称包含“tech”的所有类别。换句话说,您可以实现WHERE语句。
var_dump($sql);