刚开始用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