2014-11-08 44 views
0

中打印我正试图与mysqli进行交易,但与现在折旧的mysql相比,发现它很困难。到目前为止,我已经能够在关联数组中获得关于我的表的信息。我试图形成一个准备好的声明和echoid号码回来。我还希望能够打印已被绑定的整个sql声明,但由于我甚至无法回应单个SELECT声明中的id号码,因此目前不存在此问题。无法获取准备好的语句以在php

$db = new mysqli('xxx', 'xx', 'xx', 'xxxx'); 

$sql = "SELECT user_id, name FROM users WHERE name=?" 

$statement = $db -> prepare($sql); 

$statement -> bind_param("s", "Emma"); 

$statement -> execute(); 

$statement -> bind_result($id, $name); 

$output = $statement -> fetch(); 

echo $output -> $id . " " . $name; 

我似乎迷路在线bind_result。我想如果statement是一个对象,那么我应该可以在我设计的形式中使用echo?当我刷新我的页面时,我什么都得不到。我在我的表中有2个条目,其中1个具有上面使用的名称字符串。

回答

0

你觉得太复杂了。刚刚尝试这一点:

$db = new mysqli('xxx', 'xx', 'xx', 'xxxx'); 
$sql = "SELECT user_id, name FROM users WHERE name=?"; 
$statement = $db->prepare($sql); 
$statement->bind_param("s", "Emma"); 
$statement->execute(); 
$statement->bind_result($id, $name); 
while ($statement->fetch()) { 
    echo $id . " " . $name; 
} 

bind_result()方法需要照顾你执行你的变量$id$name得到新鲜的价值观每个$statement->fetch()

你应该看看这些方法的好documentation

+0

谢谢 - 那么'fetch'究竟返回了什么?一个布尔?所以'statement-> fetch'应该总是在while循环中?当它们没有以通常的方式定义时,它的奇怪的视觉变量例如'%id'。 '$ id = $ _GET ['id']'或'$ id = 5'等 – user1574598 2014-11-08 16:09:06

+0

您的评论意味着您没有查看文档,因为那样会马上回答您的问题。请问为什么? – arkascha 2014-11-08 19:14:33

+0

对不起,我只是在发布我的评论后才看到文档的链接。自从读过它们。 – user1574598 2014-11-08 21:09:50