BAE上怎么用webpy连接mysql

BAE上怎么用webpy连接mysql,第1张

BAE上怎么用webpy连接mysql

看了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临时文件夹的文件删除再重新从服务器下载,也就是彻底刷新页面。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8685773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存