【发布时间】:2016-06-27 19:06:50
【问题描述】:
我刚开始使用Medoo,似乎无法执行
SELECT * FROM users
以一种简单的方式。我尝试过使用
$result = $db->select("users","*");
作为官方文档suggests,但是这返回了一个错误:
警告:在第 746 行的 medoo.php 中为 foreach() 提供的参数无效
我知道 I can achieve 输入我想要的内容
$result = $db->query('SELECT * FROM users')->fetchAll();
但我想知道在 Medoo 中是否有更简单/更短的方法来执行普通的全选查询?
编辑 这是我的连接文件。
require ('medoo.php');
define("TYPE", "mysql");
define("DATABASE", "test");
define("HOST", "localhost");
define("USER", "root");
define("PASS", "");
define("CHARSET", "utf8");
$db = new medoo (array(
'database_type' => TYPE,
'database_name' => DATABASE,
'server' => HOST,
'username' => USER,
'password' => PASS,
'charset' => CHARSET));
编辑 2 表名是用户。这些列是无关紧要的,但假设它们是 id、username、password、is_deleted。奇怪的(对我来说,无论如何)部分是这样的查询
$result = $db->select('users',array('id','username'));
返回一个结果,我可以使用 var_dump 或 echo pre 和 print_r($result) 的组合轻松打印输出。就是这么简单,基本的选择所有看似不可能的事情。
编辑 3 我也尝试将引号更改为撇号,但仍然没有骰子。如果它很重要,这里是我的 PHP、MySQL 和 Medoo 版本:
PHP 5.4.31 // obtained via phpinfo
MySQL 5.5.39 // obtained by querying SELECT VERSION() in phpMyAdmin
Medoo 1.1
编辑 4 我有机会在另一台 PC 上测试有问题的查询,运行 Windows 7 Enterprise,使用 WAMP(忘记检查版本)、PHP 5.5.31 和 Medoo 版本 1。令我惊讶的是,查询通过,并返回什么我希望它会。
回到家里,在我的机器上(使用 XAMPP 1.8.2-6,在 Windows XP SP3 上 - 也许这就是问题所在?)我用过
$result = $db->debug()->select("users","*");
导致
SELECT * FROM "users";
请注意引号。我猜这可能是罪魁祸首,因为当我调试语句时它们不存在:
$result = $db->debug()->query('SELECT * FROM users');
//Outputs SELECT * FROM users
【问题讨论】:
-
除非您的连接不工作,否则您的第一个查询应该可以工作。你是如何定义
$db的? -
@JayBlanchard 我已将连接文件附加到我原来的问题中。奇怪的是,如果我手动输入要从表中检索的列,我可以执行普通查询。
-
表名是什么?
-
@JayBlanchard 请查看新的编辑。