Php 如何将访问令牌插入MySQL数据库?
我正在尝试将Instagram访问令牌插入Mysql数据库。请记住,这只是为了练习 我有这样一个DB结构,用于存储Instagram访问令牌: 因此,我想做的是,在DB中插入带有用户名的Instagram访问令牌,我成功地做到了这一点。现在,如果每个访问令牌代表单个用户,那么我想要的是: 如果用户已存在于数据库中,则从数据库中获取访问令牌并将其传递到Php 如何将访问令牌插入MySQL数据库?,php,mysql,api,instagram,Php,Mysql,Api,Instagram,我正在尝试将Instagram访问令牌插入Mysql数据库。请记住,这只是为了练习 我有这样一个DB结构,用于存储Instagram访问令牌: 因此,我想做的是,在DB中插入带有用户名的Instagram访问令牌,我成功地做到了这一点。现在,如果每个访问令牌代表单个用户,那么我想要的是: 如果用户已存在于数据库中,则从数据库中获取访问令牌并将其传递到GetUserProfileInfo(),如果用户不存在于数据库中(新用户),则将访问令牌插入数据库中 这是我的坏习惯:p $insta_data
GetUserProfileInfo()
,如果用户不存在于数据库中(新用户),则将访问令牌插入数据库中
这是我的坏习惯:p
$insta_data = $instagram_ob->GetAccessToken(INSTAGRAM_CLIENT_ID, INSTAGRAM_REDIRECT_URI, INSTAGRAM_CLIENT_SECRET, $_GET['code']);
$exist = new existance();
$user_exist = $exist-> exist($insta_data['user']['id']);
if($user_exist == 0) //user not exist {
$instagram_ob->insertoken($insta_data['access_token'], $insta_data['user']['username']); //calling function to insert access token into db
}else {
$data = $exist-> fetch($insta_data['user']['id']); // fetch user details from db
if($data) {
// Get user insta information
$user_info = $instagram_ob->GetUserProfileInfo($data['access_token']);
echo 'db access token';
} else {
// Get user insta information
$user_info = $instagram_ob->GetUserProfileInfo($insta_data['access_token']);
echo 'api access token';
}
}
$user\u exist
始终为0我不知道为什么:/
获取类
class existance
{
public function exist($insta_id)
{
$Dbobj = new DbConnection();
$query = mysqli_query($Dbobj->getdbconnect(), "SELECT id FROM access WHERE uid='.$insta_id.'");
$total = mysqli_num_rows($query);
return $total;
}
public function fetch($insta_id)
{
$Dbobj = new DbConnection();
$query = mysqli_query($Dbobj->getdbconnect(), "SELECT * FROM access WHERE uid='.$insta_id.'");
$fetch_data = mysqli_fetch_array($query);
return $fetch_data;
}
}
我真的不确定这是否是一个好的做法,但我尽了最大努力,同时也在寻找一些替代方案。如果有人在这方面指导我,那将是我的荣幸:)我在数据库中的任何地方都看不到
uid
您的意思是写入access\u令牌
$query=mysqli\u query($Dbobj->getdbconnect(),“从access中选择id,其中access\u令牌='。$insta\u id'”代码>取而代之?为什么VARCHAR(222)
?正常默认值为VARCHAR(255)
。警告:当使用mysqli
时,您应该使用和将任何数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将$\u POST
、$\u GET
或任何类型的数据直接放入查询中,如果有人试图利用您的错误进行攻击,这可能会非常有害。注意:这样会大大减少冗长,使代码更易于阅读和审核,并且不容易与过时的mysql\u query
接口混淆,因为缺少一个i
可能会造成麻烦。示例:$db=new mysqli(…)
和$db->prepare(“…”)
过程接口很大程度上是PHP 4时代的产物,当时引入了mysqli
API,不应在新代码中使用。只需随机键入,并在数据库设计中更加谨慎。当你变得邋遢的时候,这些小事情可能会追上你,让你以后感到沮丧。