php - 返回 PDO 数据

标签 php mysql pdo

大家好,我有一个使用 mysql_* 构建的程序,出于安全和折旧的原因,我正在尝试将其转换为 PDO

所以我有一大堆 mysql_* 函数设置如下

return select_from_where('users', '*', "username = '$username' AND password = '$pass'", "LIMIT 1");

我已将其转换为 PDO

return $conn -> query("SELECT * FROM users WHERE username = '$username' AND password = '$pass' LIMIT 1");

但是程序没有提供正确的结果,我不确定它是否返回数据

我的问题是,我是否必须将 PDO 响应设置为我可以使用的变量,或者是否可以让它返回值,我可以使用与上述类似的方法在我的程序中使用?

我已经为每个函数查询包含了全局 $conn,所以我确定它正在按应有的方式连接,只是没有按预期提供结果..

有没有人能快速解决这个问题,因为我的程序快完成了,正在等待发布:D

提前致谢

卢克

** 编辑行 强>*

$sql = ("SELECT * FROM users WHERE username = '$username' AND password = '$pass' LIMIT   1");
$stm = $conn->prepare($sql);
$stm->execute(array($username,$pass)); $user = $stm->fetch(); echo $user['username'];

最佳答案

首先,我个人认为使用select_from_where

这样的函数没有意义

您实际上没有为自己节省任何东西 - 您只是将查询中的单词“SELECT、FROM 和 WHERE”移动到函数名称,但使这个函数极其有限 - 比如,没有连接或其他东西。

其次,无论如何都不应该使用 PDO::query() 函数 - 它不支持准备好的语句。

所以,代码必须是

global $conn;
$sql = "SELECT * FROM users WHERE username = ? AND password = ? LIMIT 1";
$stm = $conn->prepare($sql);
$stm->execute(array($username,$pass));
return $stm->fetch();

你还必须 configure your PHP and PDO in order to be able to see every error occurred.

关于php - 返回 PDO 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16545042/

相关文章:

php - 个性化网址

php - Laravel 将多选下拉值获取到 Controller

php - 更改后更新显示的表格而不刷新

mysql - 插入后触发sql

sql - 如何连接多个 MySQL 查询同时排除某些结果?

php - PDO::quote() 用于 SQL Server 错误引用包含 ASCII NUL 的字符串

php - PHP 可以判断服务器操作系统是否为 64 位吗?

mysql - SQL WHERE 不过滤我的结果

php - PDO 插入后获取整行

php - PDO 中的 Mysql 变量和多个查询。更新查询不起作用