1

刚开始用Medoo,好像没办法执行

SELECT * FROM users

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

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

正如官方文档所建议的那样,但这返回了一个错误:

警告:在第 746 行的 medoo.php 中为 foreach() 提供的参数无效

我知道我可以通过键入来实现我想要的

$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
4

2 回答 2

0

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

于 2016-06-28T12:50:54.617 回答
0

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

于 2016-07-11T21:26:33.760 回答