SELECT 全部与 Medoo

SELECT ALL with Medoo

我刚开始用Medoo,好像无法执行

SELECT * FROM users

以一种简单的方式。我试过使用

$result = $db->select("users","*");

作为官方文档suggests,但这返回了一个错误:

Warning: Invalid argument supplied for foreach() in medoo.php on line 746

我知道I can achieve我想要输入的内容

$result = $db->query('SELECT * FROM users')->fetchAll();

但我想知道在 Medoo 中是否有更简单/更短的方法来执行普通的 Select All 查询?

编辑 这是我的连接文件。

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 table 名称是用户。这些列是无关紧要的,但假设它们是 id、用户名、密码 is_deleted。奇怪的是(无论如何对我来说)这一切的一部分是

这样的查询
$result = $db->select('users',array('id','username'));

returns 一个我可以轻松打印出来的结果,比如 var_dump,或者回显 pre 和 print_r($result) 的组合。就这么简单,基本 Select 所有看似不可能的事情。

编辑 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 测试有问题的查询. 令我惊讶的是,查询通过了,并且 returns 符合我的预期。

回到家,在我的机器上(使用 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

我有同样的问题。 medoo v1.1.1 中似乎发生了一些变化。我正在使用 medoo v1,当我想迁移 medoo v1.1 时会发生此错误。

我已将 phpMyAdmin 更新到 4.4.15.7 版,将 Medoo 更新到 1.1.2 版,解决了这个问题。现在一切正常。