Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从mysql到PDO的转换_Php_Mysql_Pdo - Fatal编程技术网

Php 从mysql到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更新到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 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而不是用户名进行搜索。