看了web.py源码,关于连接数据库的函数如下(webpy/web/db.py):
1133 _databases = {}
1134 def database(dburl=None, **params):
1135 """Creates appropriate database using params.
1136
1137 Pooling will be enabled if DBUtils module is available.
1138 Pooling can be disabled by passing pooling=False in params.
1139 """
1140 dbn = params.pop('dbn')
1141 if dbn in _databases:
1142 return _databases[dbn](**params)
1143 else:
1144 raise UnknownDB, dbn
可以看出的是,dburl的确没有起到作用,注释里面也说了: Creates appropriate database using params。不过一般连接mysql数据库通过以下参数连接的话,应该是可以连接上的吧。(我没有试过远程,所以不敢肯定。)
import web
db = db.database(
dbn="mysql",
db="dbname",
host="host",
port=3306,
user="user",
pw="password"
)
以下是BAE的连接MySQL方法。基本的调用和PHP的相关MySQL函数一样:mysql_query — 发送一条 MySQL 查询
mysql_fetch_array — 从结果集中取得一行作为关联数组,或数字数组,或二者兼有
mysql_fetch_row — 从结果集中取得一行作为枚举数组
mysql_fetch_assoc — 从结果集中取得一行作为关联数组
mysql_result — 取得结果数据
教程手册:点击查阅
[php] view plaincopy
<?php
/*连接到汪海实验室的BAE数据库*/
/*从平台获取查询要连接的数据库名称*/
$dbname ='cIvsXiIejIxQjRUtnrme'
/*从环境变量里取出数据库连接需要的参数*/
$host = getenv('HTTP_BAE_ENV_ADDR_SQL_IP')
$port = getenv('HTTP_BAE_ENV_ADDR_SQL_PORT')
$user = getenv('HTTP_BAE_ENV_AK')
$pwd = getenv('HTTP_BAE_ENV_SK')
/*接着调用mysql_connect()连接服务器*/
$link = @mysql_connect("{$host}:{$port}",$user,$pwd,true)
if(!$link) {
die("Connect Server Failed: " . mysql_error($link))
}
/*连接成功后立即调用mysql_select_db()选中需要连接的数据库*/
if(!mysql_select_db($dbname,$link)) {
die("Select Database Failed: " . mysql_error($link))
}
/*至此连接已完全建立,可以使用其它标准php mysql函数 *** 作进行数据库 *** 作*/
$sql = "SELECT * FROM `Users` LIMIT 0, 30"
//$sql = "INSERT INTO `Users` (`Name`, `Email`, `Age`, `Sex`) VALUES ('Test01', 'test@sina.cn', '12', '1')"
$result = mysql_query("$sql")
or die("Invalid query: " . mysql_error())
while ($row = mysql_fetch_assoc($result)) {
print_r($row)
}
echo "That's all!"
?>
以下是SAE的连接方式,很多都已经封装好了,直接使用SQL语句即可:
[php] view plaincopy
<?php
$mysql = new SaeMysql()
//查询
$sql = "SELECT * FROM `user` LIMIT 10"
$data = $mysql->getData( $sql )
$name = strip_tags( $_REQUEST['name'] )
$age = intval( $_REQUEST['age'] )
//插入
$sql = "INSERT INTO `user` ( `name` , `age` , `regtime` ) VALUES ( '" . $mysql->escape( $name ) . "' , '" . intval( $age ) . "' , NOW() ) "
$mysql->runSql( $sql )
if( $mysql->errno() != 0 )
{
die( "Error:" . $mysql->errmsg() )
}
$mysql->closeDb()
?>
连接phpAdmin的时候如果长时间没有 *** 作会提示网页过期,此时CTRL+F5即可。
按F5有时候一些内容是不会被更新的,而CTRL+F5则所有内容都会被更新.
具体区别是:
F5通常只是刷新本地缓存;
Ctrl+F5可以把Intenet临时文件夹的文件删除再重新从服务器下载,也就是彻底刷新页面。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)