Php 从mysql到PDO的转换
因此,我决定通过将我的一些脚本从mysql更新到PDO来更新我的代码。我用了最后几天的时间试图更好地了解PDO,但我无法将我找到的示例与我的脚本联系起来 数据库连接:Php 从mysql到PDO的转换,php,mysql,pdo,Php,Mysql,Pdo,因此,我决定通过将我的一些脚本从mysql更新到PDO来更新我的代码。我用了最后几天的时间试图更好地了解PDO,但我无法将我找到的示例与我的脚本联系起来 数据库连接: mysql_connect('localhost', 'root', '') or die ('The server is facing issues at the moment'); mysql_select_db('openchat') or die('Problem with connecting to the databa
mysql_connect('localhost', 'root', '') or die ('The server is facing issues at the moment');
mysql_select_db('openchat') or die('Problem with connecting to the database');
包含数据库连接的Php函数:
function user_exists($username) {
$username = sanitize($username);
return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `user` WHERE `username` = '$username'"), 0) == 1) ? true : false;
}
该函数检查用户是否已经存在,其中$username是表单中发布的用户名,并且该函数检查用户名是否已获取。
我只是展示了代码的一小部分,所以我希望这是足够的信息来获取代码:)
更新我想我已经做了一个最新的版本了
try {
$db = new PDO('mysql:host=127.0.0.1;dbname=openchat', 'user', 'user123');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(Exception $e) {
die('The server is facing issues' . '</br>' . $e->getMessage());
}
function test() {
global $db;
$query = $db->query("SELECT COUNT(`user_id`) FROM `user` WHERE `username` = 'testbruker'");
$result = $query->fetchColumn();
return ($result == 1) ? true: false;
}
试试看{
$db=newpdo('mysql:host=127.0.0.1;dbname=openchat','user','user123');
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);
}捕获(例外$e){
die('服务器面临问题'。。$e->getMessage());
}
功能测试(){
全球$db;
$query=$db->query(“从`user`中选择COUNT(`user\u id`),其中`username`='testbruker'”);
$result=$query->fetchColumn();
返回($result==1)?真:假;
}
您可以尝试类似的方法。但我建议您将数据库信息存储在安全的地方。但这应该能起作用
try{
$db = new Database($host,$username,$password,$database);
$user = 'This user';
$sql = "SELECT COUNT (user_id) FROM users WHERE username = ?;";
$result = $db->prepare($sql);
$result ->execute(array($user));
if ($result ->rowCount() > 0) {
echo 'The user is present';
} else {
echo 'There is nothing';
}
}
catch (Exception $e){
die('Error : ' . utf8_encode($e->getMessage()));
}
用谷歌搜索一下,你会发现数以百万计的例子。请先尝试一下。在这里,您可以找到如何使用PDO连接到数据库。你也可以找到许多选择的例子:)如果你失败了,我们将帮助你。如果你不尝试,你就不会学习。顺便说一下:看起来您的脚本很容易受到sql注入的攻击@Danielius只是想知道,
是否会清理
潜在地修复sql注入?不是很好,还是很不安全,但看起来不是直接的问题。@something抱歉,我没有看到这个功能。正如我所记得的,从旧的mysql函数来看,“mysql\u real\u escape\u string”应该在这里有所帮助。这里我读了一些关于消毒的更多信息:)再次抱歉+即使是这样也不安全@Danielius实际上在一个单独的文件中有数据库连接,我只是把它放在这里让它更简单:)一个问题。$user应该是什么意思。该函数检查该用户是否已经存在,其中$username是表单中发布的用户名,并且该函数检查该用户名是否已获取not@ReinBentdal$user是包含要在数据库中签入的用户名的变量$用户名是PDO连接的登录名。使用PDO,查询中的每个?
都将替换为$result->execute(array($user))中提到的数组中的值代码>@Raccoon数据库中是否可能存在多个具有相同用户名的用户?我不太擅长SQL,但添加限制1
可能会使运行速度更快?@Danielius如果您将用户名存储在数据库中,则不应该有重复的用户名。每个用户名必须是唯一的,不是吗?但如果不是这样,你必须按ID而不是用户名进行搜索。