Php 从mysql更新到mysqli新手
我正在将我的站点从MySQL转换为MySQLi这对我来说并不简单,因为我从来没有在MySQLi中编写过任何代码,当每个用户登录时,他都会获得一个唯一的访问令牌,我需要将此代码转换为MySQLiPhp 从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`
<?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