3

所以我正在尝试学习 f3,而数据库语法却让我望而却步。

查看文档,您似乎传递了一个 sql 字符串和要替换的值数组。但我似乎无法让它工作。我试过只使用一个参数,使用数组,不使用数组等。最终我需要在查询中替换 5+ 个变量,所以我真的需要了解它是如何工作的。提前谢谢。

$db = new DB\SQL(
    $f3->get('db'), 
    $f3->get('dbuser'), 
    $f3->get('dbpass')
);
$x = $db->exec(
    "SELECT user_id, email, token FROM `user_primary` WHERE `first_name` = ':first' AND `last_name` = ':last';",
    array(
        ':first' => $f3->get('PARAMS.first'),
        ':last' => $f3->get('PARAMS.last')
    )
);
echo '<pre>'.print_r($x, true).'</pre>';
4

1 回答 1

4

我犯的错误是引号。

select * from table where name = ':name'

是不正确的。你需要删除引号

select * from table where name = :name

所以如果你想使用多个只是数组嵌套它们

$db->exec(
    `select * from table where first_name = :fname and last_name = :lname`,
    array(
        ':fname' => 'xero',
        ':lname' => 'harrison'
    )
);

也许这会帮助别人。

于 2013-02-27T02:15:11.913 回答