我目前正在修改我的代码,并且遇到了一些问题,所以我想问一下,看看是否有人可以帮我处理新代码......
首先,我的代码周围有很多 mysql_result(),想知道如何为新进程编写代码。这里有一个我的函数的示例需要更改的代码,我已经做了一些我需要知道如何重写的 mysql_result()部分..
function user_exists($db,$username) {
$username = sanitize($db,$username);
$sql = $db->query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username'");
return(mysql_result($sql, 0) == 1) ? true : false;
}
另外,当我在这里时,我也可以问...我也有这个功能,以及清理代码,但我一直在读 mysql_real_escape_string 并不是那么安全。我已经读过我应该使用预处理语句,我只是不确定如何将它实现到我的代码中。所以sanitize函数基本上只是 mysql_real_escape_string() ..
function sanitize($db, $data) {
return mysqli_real_escape_string($db, $data);
}
那么我怎么能做到这一点呢?因为我正在阅读它只是在...之类的查询之前放置准备。
$sql = $db->prepare("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username'");
所以我的问题是,有人可以帮助我更改这些代码以更正最新版本吗?
答案 0 :(得分:0)
您要使用的是PDO类和绑定值(http://www.php.net/manual/en/class.pdo.php)。
所以类似下面的内容应该有效:
$stmt = $db->prepare("SELECT 1 FROM users WHERE username = ?");
$stmt->execute([$username]);
return $stmt->fetchColumn();