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 版,解决了这个问题。现在一切正常。
我刚开始用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 版,解决了这个问题。现在一切正常。