我有以下数据从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));
然而,这会引发页面错误,我的页面将不再加载。我怎么能纠正这个?
答案 0 :(得分: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"
));
答案 1 :(得分: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);
答案 2 :(得分: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);