我是PHP和MySQL的新手,我正在寻找一种使用预备语句将数据库行的单个值存储在变量中的解决方案。
现在,这是准备好的语句和执行:
$emailsql = $conn->prepare("SELECT email FROM User WHERE email = ? limit 1;");
$emailsql->bind_param('s', $email);
$emailsql->execute();
我试过get_result()
,fetch()
,fetch_object()
和我的想法说出来和谷歌的搜索结果。
您需要在代码中添加结果与特定变量的绑定
$emailsql->bind_result($emailResult);
然后您获取它:
while($emailsql->fetch()){
printf ($emailResult);
}
所以应该是这样:
$emailsql = $conn->prepare("SELECT email FROM User WHERE email = ? limit 1;");
$emailsql->bind_param('s', $email);
$emailsql->execute();
$emailsql->bind_result($emailResult);
while($emailsql->fetch()){
printf ($emailResult);
}
如果您需要循环外的变量,我会采用这种方法:
$theEmail;
$emailsql = $conn->prepare("SELECT email FROM User WHERE email = ? limit 1;");
$emailsql->bind_param('s', $email);
$emailsql->execute();
$emailsql->bind_result($emailResult);
while($emailsql->fetch()){
$theEmail=$emailResult;
}
请注意,您需要一个数组才能查询多个电子邮件。
@YourCommonSense建议的另一种更清洁的方法是避免像这样的循环:
$theEmail;
$emailsql = $conn->prepare("SELECT email FROM User WHERE email = ? limit 1;");
$emailsql->bind_param('s', $email);
$emailsql->execute();
$emailsql->bind_result($emailResult);
$emailsql->fetch();
printf($emailResult);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句