作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的问题
不使用准备好的语句我可以做得很好,例如,
$qry = "SELECT * FROM accounts WHERE email = '$email'";
$result = mysql_query($qry);
$account = mysql_fetch_assoc($result);
echo '<p>Welcome <strong>' . $account['username'] . '</strong>, Have a good day! And dont forgot your id ' . $account['id'] . '.</p>';
考虑到电子邮件确实与 mysql 数据库上的一行匹配,那么我可以通过简单地执行 $account['gender'], $account['age'] 轻松回显电子邮件匹配的任何其他列。
我在做这件事时遇到了很多麻烦,这是我的尝试;
$q = $dbc -> prepare ("SELECT * FROM accounts WHERE email = ?");
$q -> bind_param ('s', $email);
$q -> execute();
$q -> bind_result();
$info = $q -> fetch();
echo '<p>Welcome ' . $info['username'] . '.</p>';
使用第一种方法,我可以显示电子邮件与该行匹配的任何列中的任何信息,为了安全起见,我切换到准备好的语句,但我正在考虑切换回来,因为它会带来麻烦!
最佳答案
bind_result
接受参数。您将想要设置的变量传递给它,然后调用 fetch
。
$q->bind_result($username);
$q->fetch();
echo $username;
为此,您需要将 SELECT *
更改为您想要的字段,即 SELECT username
。
如果您仍然需要使用SELECT *
,您可以这样做:
$q->execute();
$r = $q->get_result();
while($row = $r->fetch_array(MYSQLI_ASSOC)){
}
关于php - mysql fetch_assoc_array?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5680734/
这是我的问题 不使用准备好的语句我可以做得很好,例如, $qry = "SELECT * FROM accounts WHERE email = '$email'"; $result = my
我是一名优秀的程序员,十分优秀!