smarty如何执行sql

 我来答
尚子素
2016-01-21 · TA获得超过600个赞
知道小有建树答主
回答量:566
采纳率:33%
帮助的人:200万
展开全部

举个例子:

require('../libs/SmartySQL.class.php'); 

$smarty = new SmartySQL(  array('pdo_dsn' => 'mysql:dbname=db_name;host=localhost', 
            'pdo_username' => 'username', 
            'pdo_password' => 'password', 
            'pdo_driver_options' => array() ) ); 

$smarty->display('index.tpl');

模板内容:

<table border="1"> 
<tr> 
   <td><b>ID</b></td> 
   <td><b>Name</b></td> 
   <td><b>E-Mail</b></td> 
   <td><b>Details</b></td> 
</tr> 
{foreach from=$res item=i sql="SELECT id, name, email FROM contacts"} 
<tr> 
   <td>{$i.id}</td> 
   <td>{$i.name}</td> 
   <td>{$i.email}</td> 
   <td><a href="?id={$i.id}">Info</a></td> 
</tr> 
{/foreach} 
</table> 

{if $smarty.request.id} 
User info: 
{foreach from=$res item=i 
sql="SELECT id, name, email FROM contacts WHERE id = {$smarty.request.id}"} 
   ID: {$i.id}<br /> 
   Name: {$i.name}<br /> 
   E-Mail: {$i.email}<br /> 
{/foreach} 
{/if}

数据库:

DROP TABLE IF EXISTS contacts; 
CREATE TABLE contacts ( 
   id    INT(11) UNSIGNED NOT NULL AUTO_INCREMENT         COMMENT 'ID', 
   name  VARCHAR(255)     NOT NULL DEFAULT ''             COMMENT 'Name', 
   email VARCHAR(255)     NOT NULL DEFAULT ''             COMMENT 'E-Mail', 
    
   PRIMARY KEY (id) 
) ENGINE=InnoDB CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' COMMENT='User contacts'; 


INSERT INTO contacts VALUES 
(1, 'John Doe',      'jd@gm.com'), 
(2, 'Mary Smith',    'ms@gm.com'), 
(3, 'James Johnson', 'jj@gm.com'), 
(4, 'Henry Case',    'hc@gm.com');
俅俅火了
2014-10-16 · TA获得超过273个赞
知道小有建树答主
回答量:96
采纳率:0%
帮助的人:64.8万
展开全部
smarty 是解决视图问题

执行SQL是model/dao要做的事情

建议不要在模板里面写sql

非要写也可以使用smarty 的php 标签
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小海吧
互联网爱好者

2014-10-16 · 互联网情报员
知道小有建树答主
回答量:203
采纳率:53%
帮助的人:23.2万
展开全部
$query = "SELECT * FROM .......";
$name = $db->getall($query);

$smarty->assign('name', $name);

print_r($name);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
暨振浩星0hYcb5
2014-10-16 · 超过10用户采纳过TA的回答
知道答主
回答量:43
采纳率:100%
帮助的人:15.8万
展开全部
$query = "SELECT * FROM .......";
$name = $db->getall($query);

$smarty->assign('name', $name);

print_r($name);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-10-16
展开全部
$db->query($sql);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式