0

我有以下从 Twitter 转储到我的网站上的数据数组。

array(4) {  
    ["oauth_token"]=> string(50) "19497918-McrcAAd1qrZwWaHljVPNbWVTSSrjolsybKwSXvtQ2" 
    ["oauth_token_secret"]=> string(39) "Mixl5gYZjxQqzGhs1q0GoP9DDBwxVDWfBRgldJE"    
    ["user_id"]=> string(8) "19497958" 
    ["screen_name"]=> string(6) "Liam" 
}

我想以某种方式将其存储在我的表中。我的表结构是:

id   |   oauth_token   |   oauth_token_secret   |   user_id   |   screen_name

我目前正在尝试使用以下语句插入我的数据

$qry = $conn->prepare('INSERT INTO users (access_token) VALUES (?)');
$qry->execute(array($access_token));

但是,这会引发页面错误,并且我的页面将不再加载。我该如何纠正?

4

3 回答 3

2

鉴于您的变量已经是一个数组并且非常适合prepare()声明,请执行以下操作:

$qry = $conn->prepare('INSERT INTO users 
              (oauth_token, oauth_token_secret, user_id, screen_name)
              VALUES (:oauth_token, :oauth_token_secret, :user_id, :screen_name)');
$qry->execute($access_token);

就像这样做一样,这就是我们通常在 中看到准备好的语句的方式PDO

$qry = $conn->prepare('INSERT INTO users SET (oauth_token, oauth_token_secret, user_id, screen_name) VALUES (:oauth_token, :oauth_token_secret, :user_id, :screen_name)');
$qry->execute(array(
    'oauth_token' => "19497918-McrcAAd1qrZwWaHljVPNbWVTSSrjolsybKwSXvtQ2",
    'oauth_token_secret' => "Mixl5gYZjxQqzGhs1q0GoP9DDBwxVDWfBRgldJE",
    'user_id' => "19497958",
    'screen_name' => "Liam"
));
于 2013-05-28T18:35:42.163 回答
0

假设您的数组的名称是: $access_token 并且它具有值(非空)。

$qry = $conn->prepare('INSERT INTO users (access_token) 
 VALUES ($access_token["oauth_token"], $access_token["oauth_token_secret"],   
 $access_token["user_id"], $access_token["screen_name"])');

 $qry->execute($access_token);
于 2013-05-28T18:32:10.517 回答
0

首先,user_id应该可能是一个整数,因为它只是数字。

您的代码应该看起来像这样才能按照您希望的方式工作。

$userarray = array(4) {  
    ["oauth_token"]=> string(50) "19497918-McrcAAd1qrZwWaHljVPNbWVTSSrjolsybKwSXvtQ2" 
    ["oauth_token_secret"]=> string(39) "Mixl5gYZjxQqzGhs1q0GoP9DDBwxVDWfBRgldJE"    
    ["user_id"]=> int(8) "19497958" 
    ["screen_name"]=> string(6) "Liam" 
}

$qry = $conn->prepare('INSERT INTO users (oauth_token, oauth_token_secret, user_id, screen_name) VALUES (:oauth_token, :oauth_token_secret, :user_id, :screen_name)');
$qry->execute($userarray);
于 2013-05-28T18:33:17.367 回答