Php 如何编写这个复杂的MySQL查询
我有一个名为Users的表,它有三列:Email、FB\u Id、Google\u Id 问题是我如何将以下想法复制到一个MySQL查询中 假设有人使用FB_id登录,那么如果电子邮件存在,我应该检查DB。如果是,则在本例中更新相关ID FB_ID。 我试图做的是为一个用户保留来自不同提供者的所有id。如果用户具有google+和Fb的相同用户ID,则我们可以同时拥有该电子邮件的提供商ID,并且我的网站将允许登录该电子邮件 我写的函数是这样的。现在,我想将更新操作添加到此中,然后从数据库中获取用户详细信息 作用 更新1Php 如何编写这个复杂的MySQL查询,php,mysql,Php,Mysql,我有一个名为Users的表,它有三列:Email、FB\u Id、Google\u Id 问题是我如何将以下想法复制到一个MySQL查询中 假设有人使用FB_id登录,那么如果电子邮件存在,我应该检查DB。如果是,则在本例中更新相关ID FB_ID。 我试图做的是为一个用户保留来自不同提供者的所有id。如果用户具有google+和Fb的相同用户ID,则我们可以同时拥有该电子邮件的提供商ID,并且我的网站将允许登录该电子邮件 我写的函数是这样的。现在,我想将更新操作添加到此中,然后从数据库中获取用
提前感谢更新用户设置FB_id='FACABOOK'u FB_id'WHERE EMAIL='FB_EMAI' 如果我正确理解你的问题,你想同时更新谷歌id和facebook id中的一个或两个
<?php
$sql = "UPDATE `users` ";
$sql .= isset($_POST['im_FbId']) ? " SET fb_id='{$_POST['im_FbId']}' " : "";
$comma = isset($_POST['im_FbId']) ? "," : "";
$sql .= isset($_POST['im_GId']) ? " {$comma}SET google_Id='{$_POST['im_GId']}' " : "";
$sql .= " WHERE id=2";
$this->parent->database->query($sql);
如果两个Id都存在,$sql值将为
UPDATE `users` SET fb_id='facebook id' ,SET google_Id='google id' WHERE id=2
如果其他语句是你的方法。我不认为你想要的东西在一个语句中是可能的。你没有使用他们的API吗?@Dorvalla哦,是的,我在脑海中使用了if-else语句。但我在想,如果我能在一个查询中链接它:。谢谢你的建议though@Vikram哦,等等,这不是很容易吗:从facebook更新FB\u id=id\u,其中email=email\u来自facebook?听起来像是一个计划当我刚开始使用SQL时,往往会被一个非常基本的查询所困扰,我在谷歌上搜索了VisualSQL查询生成器,找到了一些非常有用的。。你可以试试,但不要太依赖工具。Otoh,我很惊讶地看到这样一个工具生成了比我所能生成的更优雅的东西:-/
<?php
$sql = "UPDATE `users` ";
$sql .= isset($_POST['im_FbId']) ? " SET fb_id='{$_POST['im_FbId']}' " : "";
$comma = isset($_POST['im_FbId']) ? "," : "";
$sql .= isset($_POST['im_GId']) ? " {$comma}SET google_Id='{$_POST['im_GId']}' " : "";
$sql .= " WHERE id=2";
$this->parent->database->query($sql);
UPDATE `users` SET fb_id='facebook id' WHERE id=2
UPDATE `users` SET fb_id='facebook id' ,SET google_Id='google id' WHERE id=2