Php 查询基于用户电子邮件的id查找
有人能给我一个MySQL关系查询,根据同一个表的另一个值查找表的列值吗 例如,我有一个包含4列(id、名称、电子邮件、密码)的表。如何根据某个用户的电子邮件在“电子邮件”列中查找“id”列的值,并将结果(id)存储在变量中 下面是session()控制器函数Php 查询基于用户电子邮件的id查找,php,mysql,Php,Mysql,有人能给我一个MySQL关系查询,根据同一个表的另一个值查找表的列值吗 例如,我有一个包含4列(id、名称、电子邮件、密码)的表。如何根据某个用户的电子邮件在“电子邮件”列中查找“id”列的值,并将结果(id)存储在变量中 下面是session()控制器函数 function userIsLoggedIn() { if (isset($_POST['action']) and $_POST['action'] == 'login') { if (!isset($_
function userIsLoggedIn()
{
if (isset($_POST['action']) and $_POST['action'] == 'login')
{
if (!isset($_POST['email']) or $_POST['email'] == '' or
!isset($_POST['password']) or $_POST['password'] == '')
{
$GLOBALS['loginError'] = 'Please fill in both fields';
return FALSE;
}
$password = md5($_POST['password'] . 'chainfire db');
if (databaseContainsAuthor($_POST['email'], $password))
{
session_start();
$_SESSION['loggedIn'] = TRUE;
$_SESSION['email'] = $_POST['email'];
$_SESSION['password'] = $password;
$_SESSION['authorid'] = $author;
return TRUE;
}
else
{
session_start();
unset($_SESSION['loggedIn']);
unset($_SESSION['email']);
unset($_SESSION['password']);
unset($_SESSION['authorid']);
$GLOBALS['loginError'] =
'The specified email address or password was incorrect.';
return FALSE;
}
}
我试过了
SELECT id FROM article WHERE email='$email'
有没有更有效的方法?我也不完全确定如何将查询结果存储在$author
会话变量中
提前谢谢 您的查询是完美的(附带条件是您正在清理$email
变量-请参阅的故事)
要执行该查询并将变量$author
设置为返回值,只需执行以下操作:
$author = 0;
if( ( $idFromEmail = @mysql_query( "SELECT id FROM article WHERE email='".mysql_real_escape_string( $email )."'" ) )
&& mysql_num_rows( $idFromEmail )==1
&& ( $r = mysql_fetch_assoc( $idFromEmail ) ) ){
$author = $r['id'];
}
如果上述内容过于复杂而无法遵循,则以长格式重写:
$author = 0;
if( !( $idFromEmail = @mysql_query( "SELECT id FROM article WHERE email='".mysql_real_escape_string( $email )."'" ) ){
// SQL Query Failed
}elseif( mysql_num_rows( $idFromEmail )!=1 ){
// More than, or less than, one row returned
}else{
$r = mysql_fetch_assoc( $idFromEmail );
$author = $r['id'];
}
我建议您将每段代码都写在单独的一行中,以使代码更具可读性,即,
$idFromMail=mysql\u query(…);如果(mysql_num_rows(…)==1){$r=mysql_fetch…;$author=$r['id'];}
同意。通常我会,我只是想在这里尝试一些新的东西。
$author = 0;
if( !( $idFromEmail = @mysql_query( "SELECT id FROM article WHERE email='".mysql_real_escape_string( $email )."'" ) ){
// SQL Query Failed
}elseif( mysql_num_rows( $idFromEmail )!=1 ){
// More than, or less than, one row returned
}else{
$r = mysql_fetch_assoc( $idFromEmail );
$author = $r['id'];
}