我使用以下方法创建了12个MySQL数据库连接:
<form>
<?php
if ($userid != $followerid) {
if ($isFollowing) {
echo '<input type="submit" name="unfollow" value="unfollow", style="width:100%;background-image:url("none");background-color:#da052b;color:#fff;padding:16px 32px;margin:0px 0px 6px;border:none;box-shadow:none;text-shadow:none;opacity:0.9;text-transform:uppercase;font-weight:bold;font-size:13px;letter-spacing:0.4px;line-height:1;outline:none>';
} else {
echo '<input type="submit" name="follow" value="Follow", style="width:100%;background-image:url("none");background-color:#da052b;color:#fff;padding:16px 32px;margin:0px 0px 6px;border:none;box-shadow:none;text-shadow:none;opacity:0.9;text-transform:uppercase;font-weight:bold;font-size:13px;letter-spacing:0.4px;line-height:1;outline:none>';
}
}
?>
</form>
我有一个脚本,我想在所有12个数据库上执行相同的查询并循环遍历它们。如何将if (isset($_POST['follow'])) {
if ($userid != $followerid) {
if (!DB::query('SELECT follower_id FROM followers WHERE user_id=:userid AND follower_id=:followerid', array(':userid'=>$userid, ':followerid'=>$followerid))) {
if ($followerid == 6) {
DB::query('UPDATE users SET verified=1 WHERE id=:userid', array(':userid'=>$userid));
}
DB::query('INSERT INTO followers VALUES (null, :userid, :followerid)', array(':userid'=>$userid, ':followerid'=>$followerid));
} else {
echo 'Already following!';
}
$isFollowing = True;
}
}
if (isset($_POST['unfollow'])) {
if ($userid != $followerid) {
if (DB::query('SELECT follower_id FROM followers WHERE user_id=:userid AND follower_id=:followerid', array(':userid'=>$userid, ':followerid'=>$followerid))) {
if ($followerid == 6) {
DB::query('UPDATE users SET verified=0 WHERE id=:userid', array(':userid'=>$userid));
}
DB::query('DELETE FROM followers WHERE user_id=:userid AND follower_id=:followerid', array(':userid'=>$userid, ':followerid'=>$followerid));
}
$isFollowing = False;
}
}
if (DB::query('SELECT follower_id FROM followers WHERE user_id=:userid AND follower_id=:followerid', array(':userid'=>$userid, ':followerid'=>$followerid))) {
$isFollowing = True;
}
个对象成功传递给mydb1 = dbConnect(MySQL(), user='user', password=password, dbname='db',host='domain')
mydb2...
mydb3...
...
mydb12...
?
dbConnect
给我错误:
(函数(classes,fdef,mtable)中的错误:无法找到 用于签名的函数'dbSendQuery'的继承方法 '&#34;字符&#34;,&#34;字符&#34;'
答案 0 :(得分:0)
您无法将连接对象的文本表示传递给数据库函数。你的电话类似于dbSendQuery("mydb1", "select * from table")
,我猜你不会在字面上打字。
最终,您希望处理list
个连接,您可以使用
conns <- list(mydb1, mydb2, ...)
但是如果这很困难,或者你想对它进行更多编程,请尝试
conns <- lapply(ls()[grep("mydb",ls())], get)
然后
results <- lapply(conns, function(con) dbSendQuery(con, "select * from ..."))