选择两个领域在MySQL中使用PHP

我是比较新的PHP和MySQL,并想知道如何选择与PHP的MySQL二值化。

我有什么是

$query = sprintf("SELECT COUNT(id) FROM table WHERE UPPER(username) = UPPER('%s') AND password='%s'"...

在这种情况下,我只选择,如果ID存在,我使用计数

list($count) = mysql_fetch_row($result); if($count == 1)

并且通过使用饼干,我想从数据库,即用户(用户名)和功率检索二值化(其具有1,2或3的值,表示它们将能够看到菜单)基本上它是区分,如果你是管理员还是普通用户,但我不知道如果我能做到

SELECT COUNT(id) AND power FROM table WHERE ...

这可能吗? 或者是有任何其他方式?

请指导我,谢谢。

--------------解决方案-------------

你将不得不做这样的事情:

SELECT username, power FROM table WHERE UPPER(username) = UPPER('%s') AND password='%s'"...

所以,如果它给你一个结果,这意味着用户名和密码匹配,你将有该行的用户名和力量。

再见!

你可以只是做

SELECT power FROM table WHERE ... LIMIT 1

接着:

$numRows = mysql_num_rows($result);
if($numRows == 1){
$pow = mysql_fetch_row($result)[0];
}

(未测试,但应该工作,我认为:))

编辑:

如果要选择多个字段更多:

SELECT power, somethingelse, yetanotherfield FROM table ...

$row = mysql_fetch_row($result);
$pow = $row[0];
$stelse = $row[1];
...

为什么你需要计算'ID'字段的数量?

如果你想只从数据库中提取只有两个字段,你应该使用'SELECT ID,功率从表WHERE ......“

AND当且仅当它的所有参数都为真,则返回true逻辑运算。 如果你在谈论一个结果有一个以上的列,只需用逗号分隔:

SELECT COUNT(id), power
FROM table
WHERE ...

但是,如果power并不功能依赖于id并有多个行指定同一个id ,你可以得到任何的power值(在数据库管理系统MySQL之外,你需要GROUP BY功率为查询即使工作)。

相反,在PHP执行的独特性,申报UNIQUE的列名的索引。 列id应该是一个主键,这意味着它是唯一的。

CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(64) UNIQUE NOT NULL,
...
);

或者,如果该表已经存在,

CREATE UNIQUE INDEX username ON users (username);

无关

通过调用UPPER上栏的用户名,您要阻止使用任何索引,MySQL的造成不得不扫描整个表来执行查询。 如果你想你的用户名是不区分大小写,它们存储之前将它们转换。 这是很容易使用触发器,您可以在MySQL参考手册阅读来完成。

delimiter ;;
CREATE TRIGGER upcase_username_insert
BEFORE INSERT
ON TABLE users
FOR EACH ROW
NEW.username=UPPER(NEW.username)
END;;
CREATE TRIGGER upcase_username_update
BEFORE UPDATE
ON TABLE users
FOR EACH ROW
NEW.username=UPPER(NEW.username)
END;;
delimiter ;

当使用sprintf结合字符串将做工精细,它不是标准的做法。 变量插值到双引号字符串,所以可以简单的写"SELECT ... WHERE "

请确保你存储哈希和盐渍的密码(使用加密安全散列,这MD5不,这些天),而不是简单的密码。

最后,但最重要的,这取决于在那里插值到查询的值来自什么其他的处理是在他们所做的,您的查询可能会受到SQL注入攻击。 使用PDO和准备语句代替(预备语句的参数是无懈可击的SQL注入)。 阅读“编写脚本的MySQL使用PHP和PDO”为PDO教程。

分类:php 时间:2015-03-16 人气:130
本文关键词: PHP和MySQL
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.632 (s). 10 q(s)