Php 从mysql更新到mysqli新手

Php 从mysql更新到mysqli新手,php,mysql,mysqli,Php,Mysql,Mysqli,我正在将我的站点从MySQL转换为MySQLi这对我来说并不简单,因为我从来没有在MySQLi中编写过任何代码,当每个用户登录时,他都会获得一个唯一的访问令牌,我需要将此代码转换为MySQLi <?php include('config.php'); mysql_query("CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `points`

我正在将我的站点从MySQL转换为MySQLi这对我来说并不简单,因为我从来没有在MySQLi中编写过任何代码,当每个用户登录时,他都会获得一个唯一的访问令牌,我需要将此代码转换为MySQLi

<?php
    include('config.php'); 
    mysql_query("CREATE TABLE IF NOT EXISTS `users` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `points` int(20) NOT NULL,
        `refer` int(11) NOT NULL, 
        `user_id` varchar(32) NOT NULL,
        `access_token` varchar(255) NOT NULL,
        PRIMARY KEY (`id`)
        ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
    ");
    $row = null;
    $result = mysql_query("
        SELECT
        *
        FROM
        users
        WHERE
        user_id = '" . mysql_real_escape_string($id) . "'
    ");

    if($result){
        $row = mysql_fetch_array($result, MYSQL_ASSOC);
        if(mysql_num_rows($result) > 1){
            mysql_query("
                DELETE FROM
                users
                WHERE
                user_id='" . mysql_real_escape_string($id) . "' AND
                id != '" . $row['id'] . "'
            ");
        }
    }

    if(!$row){
        $insertpoint=200;
        $refer=0;
        mysql_query(
            "INSERT INTO
            users
            SET
            `user_id` = '" . mysql_real_escape_string($id) . "',
            `points` = '" . mysql_real_escape_string($insertpoint) . "',
            `refer` = '" . mysql_real_escape_string($refer) . "', 
            `access_token` = '" . mysql_real_escape_string($token) . "'
        ");
    } else {
        mysql_query(
            "UPDATE
            users
            SET
            `access_token` = '" . mysql_real_escape_string($token) . "'
            WHERE
            `id` = " . $row['id'] . "
        ");
    }
?>

到目前为止,我在:

<?php
include('config.php'); 

$create_table =
'CREATE TABLE IF NOT EXISTS Data
(
`id` int(11) NOT NULL AUTO_INCREMENT,
`points` int(20) NOT NULL,
`refer` int(11) NOT NULL, 
`user_id` varchar(32) NOT NULL,
`access_token` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
)';
$create_tbl = $db->query($create_table);


$sql = <<<SQL
    SELECT *
    FROM `Data`
    WHERE user_id = '" . mysql_real_escape_string($id) . "'
SQL;
if(!$result = $db->query($sql)){
    die('There was an error running the query [' . $db->error . ']');
}

?>


我知道我的代码很糟糕,但它可以正常工作,我不知道如何进一步转换
config.php
只包含有关数据库连接的信息,现在我在MySQLi中得到了这些信息这里有一些代码可以帮到你。它还演示了应该使用的绑定参数。您可以使用相同的代码进行更新、插入和删除(只是不要调用mysqli_stmt_fetch)

你不能把

'" . mysql_real_escape_string($id) . "'

<<<SQL

你的代码还不错
mysql
mysqli
略有不同,但基本相同。只需将
i
附加到
mysql
函数中并重新编程您的连接内容,这就是您在这里基本需要做的一切。@uoɯuoɯqɔ以及可能的绑定参数……我建议您学习PHP PDO来执行准备好的语句,并避免非常可能的sql注入。PDO一点也不难学,它让你在晚上很容易入睡,因为你知道自己已经尽了最大的努力。你是想采用面向对象的方法,还是程序化的方法?爱德华多·拉霍兹·米兰达我知道这是最好的建议,这也是我正在寻找的,但当我尝试时,我没有得到那么多,于是我决定将其转换为mysqli-atlist,如果有人能在PDO方面给我任何帮助,我将非常欢迎
<<<SQL