我刚刚创建了一个我正在创建的数据库类的select函数。这是我到目前为止所创造的:
public function select($columns = array(), $table, $variables = '', $order = '') {
// Are the required variables empty or equals null?
if(empty($columns) || empty($table)) {
return false;
}
// Set $order and $variables to false
if($order == '' || $order == null) {
$order = false;
}else if($variables == '' || $variables == null) {
$variables = false;
}
// Check if $columns is an array
if(!is_array($columns)) {
return false;
}
// Set $fields as an array
$fields = array();
// Individualise the array
foreach($columns as $field) {
$fields[] = $field;
}
// Sepeate all individuals with commas
$fields = implode(', ', $fields);
// Finalise the MySQLi query
if($variables == false && $order == false) {
$query = "SELECT $fields FROM $table";
}else if($variables != false && $order == false) {
$query = "SELECT $fields FROM $table WHERE $variables";
}else if($variables == false && $order != false) {
$query = "SELECT $fields FROM $table ORDER BY $order";
}else if($variables != false && $order != false) {
$query = "SELECT $fields FROM $table WHERE $variables ORDER BY $order";
}
// Prepare the query for executing
$stmt = $this->connection->prepare($query);
// Execute the query
$stmt->execute();
// Get the results of the query
$result = $stmt->get_result();
// Set the results to a variable
while($row = $result->fetch_assoc()) {
$results[] = $row;
}
// Return the results
return $results;
}
我刚刚开始学习OOP PHP和准备语句,所以我可能会遇到一些错误。
但是整个过程都有效,当我使用print_r打印结果时,它会从数据库中打印选定的结果,但出于某种原因,当我使用以下内容时,我只是得到错误:
注意:未定义索引:名称
这就是我在索引页面上调用的内容:
$dbc = new dbc();
$query = $dbc->select(array('name', 'setting'), 'options', 'id="1"');
echo $query['name'];
我无法弄清楚为什么会这样做?它返回了函数的结果,我试图回应结果。
谢谢, 基隆
答案 0 :(得分:2)
从数据库选择中,您要设置数组$results[]
的数组。
当你找回它时,你将它作为1个数组访问它,它应该是:
echo $query[0]['name'];
或者你可以创建一个新方法select_row
,它只返回1行,你可以在没有数组的情况下访问它。