不能成功连接到SAE mysql mysql数据库库。下面是代码。求帮助。 $this->halt("mysql数据库库持久连接失败");这个错误抛出

3408人阅读
开发(54)
开放平台(14)
云平台(14)
其实从刚开始用的时候就发现本地环境和真实环境有不同,导致本地环境我都没怎么用。
1、本地环境的php是32bit版本的,真实环境是64bit的。这是我发现的第一个不相同的地方,就是因为这个,直接导致我的应用绝大部分调试工作都是在把代码上传到服务器后直接在线测试的。因为我做那个应用的时候需要用到64位整数,本地环境不支持。
2、saemysql使用的不同,今天在本地用了一下saemysql,本来以为直接拿以前线上的代码直接在本地环境中运行就可以的,结果发现不行。在线上的版本,只要直接
include_once('saemysql.php');
$mysql = new SaeMysql();
就可以使用了。但是在本地环境中这样的代码是有问题的,会提示重复声明saemysql:
Fatal error: Cannot redeclare class SaeMysql……
因为在本地环境的emulation文件夹中有saemysql.class.php这个文件。
所以把include_once('saemysql.php');注释掉,然后再运行,发现还是有错误,找不到数据库。再细看看,怎么数据库的名字变成了“app_”?正常应该是“app_应用名”才对,然后去看saemysql.class.php,有一个setAppname的方法,好吧,那就试一下吧,然后便成功了。所以在本地用saemysql的时候应该这样:
$mysql = new SaeMysql();
$mysql-&setAppname('应用名');
以上只是在我的本地环境中出现的问题,不知道是否具有普遍性。
3、在本地环境中,你是可以随意使用代码路径的,所有的IO函数都可以使用,而在真实环境中,所有本地IO可能都被禁止,要用storage来代替。
因为本地环境用的不多,目前暂时发现这些。正在做的应用准备在本地环境测试,如果有新的发现再发上来。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:467630次
积分:6553
积分:6553
排名:第2429名
原创:132篇
评论:750条
(2)(1)(1)(3)(4)(3)(7)(5)(22)(50)(23)(12)新浪云提供了免费的创建服务器端应用的服务。网址为:/
在上面创建好应用,然后在本地使用记事本编写应用的代码如下:
echo "HelloWorld!";
这是一个最简单的后台的代码,编写好后保存关闭,然后使用svn上传到刚才创建好的应用。打开网址就可以看到输出helloworld这句话。
操作数据库:
1、在应用下面创建共享型mysql数据库,创建好会有如下显示:
查看新浪云官网的文档中有php怎么操作数据库的例程:
API使用手册
SAE的PHP运行环境提供了标准的 MySQL 、 MySQLI 和 PDO 模块来连接数据库,支持所有MYSQL的特性,您可以使用您习惯的方式来操作数据库。
以下是一些和共享MySQL数据库服务相关的预定义常量,你可以直接引用这些参数来连接数据库:
用户名  :
SAE_MYSQL_USER
密  码 :
SAE_MYSQL_PASS
主库域名 :
SAE_MYSQL_HOST_M
从库域名 :
SAE_MYSQL_HOST_S
端  口 :
SAE_MYSQL_PORT
数据库名 :
SAE_MYSQL_DB
使用方法,以MySQL模块为例:
$db = mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
// $db = mysql_connect(SAE_MYSQL_HOST_S.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
if ($db) {
mysql_select_db(SAE_MYSQL_DB, $db);
PDO不支持host:port这种写法,请使用PDO标准写法
上面说的很明白:以下是一些和共享MySQL数据库服务相关的预定义常量,你可以直接引用这些参数来连接数据库:
也就是说新浪已经帮你把你的主库地址、从库地址、数据库名称、等已经帮你定义成了宏定义,你直接使用下面这句代码即可,不需要把里面的SAE_MYSQL_HOST_M替换成自己的主库地址
$db = mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
也就是说你的代码就是&?ph
$db = mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
if ($db) {
// mysql_select_db(SAE_MYSQL_DB, $db);  echo 'ok'; // ... }else{ echo 'error'; } ?&
写完代码后使用svn上传到云,然后在创建好的共享型mysql数据库管理中点击跨应用授权给应用,之后就可以通过网页访问了。
阅读(...) 评论()新浪SAE的mysql与百度SAE的代码区别?_百度知道
新浪SAE的mysql与百度SAE的代码区别?
百度的sae中,调用sql的代码为:$dbname = 'SnXAHxsmUPuRqZkaWnjF';/*从环境变量里取出数据库连接需要的参数*/$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());}/*连接成功后立即调用mysql_select_db()选中需要连接的数据库*/if(!mysql_select_db($dbname,$link)) {die(&Select Database Failed: & . mysql_error($link));}/*至此连接已完全建立,就可对当前数据库进行相应的操作了*//*!!!注意,无法再通过本次连接调用mysql_select_db来切换到其它数据库了!!!*//* 需要再连接其它数据库,请再使用mysql_connect+mysql_select_db启动另一个连接*//*** 接下来就可以使用其它标准php mysql函数操作进行数据库操作*/$sql = &SELECT * FROM `wexin` WHERE
'{$keyword}' LIMIT 0, 30 &;$query=mysql_query($sql);//执行sql语句$rs=mysql_fetch_array($query);//获取sql语句结果$contentStr=$rs['content'];/*显式关闭连接,非必须*/mysql_close($link);
其他类似问题
为您推荐:
cn/?m=devcenter&catId=11#anchor_2ac5bc3a0ed1d68d543fac" target="_blank">http://sae<a href="?m=devcenter&catId=11#anchor_2ac5bc3a0ed1d68d543fac/.com.sina,SAE如何操作MySQL://sae.sina
大哥,你发的是什么??
厉害啊,我不知道,我也想知道
sae的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁你好,我在新浪云应用 数据库 conn.php 写的内容如下面,为什么老是提示数据库配置信息错误呢,该如何写呢_百度知道
你好,我在新浪云应用 数据库 conn.php 写的内容如下面,为什么老是提示数据库配置信息错误呢,该如何写呢
$dbuser=&quot?&SAE_MYSQL_DB&;SAE_MYSQL_USER&;;$dbpass=&SAE_MYSQL_PASS&;;$dbname=&;SAE_MYSQL_HOST_M&quot?php$dbserver=&quot&lt
提问者采纳
你必须开启mysql服务.而且不能用双引号引用,直接赋值就可以了!
你好,仍然提示数据库配置错误
你的mysql有没有初始化呢?$dbserver=SAE_MYSQL_HOST_M;$dbuser=SAE_MYSQL_USER&;$dbpass=SAE_MYSQL_PASS;$dbname=SAE_MYSQL_DB;这样应该是没问题的. SAE的数据是无法从外部连接的!
我已经开启了sQL ,像SAE_MYSQL_HOST_M这些我都看见了,我的数据库是在线上传去的
这样的话就没错,你可以写个脚本看看是否正确连接了数据库,不排除是你的脚本错误!
可我不会写啊,我的网站源码都是购买的,你能帮我吗,
你买的源码无法在sae上运行,因为sae上是不支持本地写入的. 这个我无法帮你,
提问者评价
谢谢你的耐心解答,好详细呀
来自:求助得到的回答
来自团队:
其他类似问题
为您推荐:
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁SAE上连接MySQL数据库
&在sae上部署自己的代码后,肯定是需要连接到sae 的数据库的,接下来看看如何实现数据库的连接。sae连接数据库已经被模块化, 只需要使用Saemysql类即可实现。&?php$mysql = new SaeMysql();$sql = &SELECT * FROM `user` LIMIT 10&;$data = $mysql-&getData( $sql );$name = strip_tags( $_REQUEST[&#39;name&#39;] );$age = intval( $_REQUEST[&#39;age&#39;] );$sql = &INSERT
INTO `user` ( `name`, `age`, `regtime`) VALUES (&#39;&
. $mysql-&escape( $name ) . &&#39; , &#39;& . intval( $age ) . &&#39; , NOW() ) &;$mysql-&runSql($sql);if ($mysql-&errno() != 0){
die(&Error:& . $mysql-&errmsg());}$mysql-&closeDb();?&
顶一下(0) 踩一下(0)
热门标签:

我要回帖

更多关于 mysql数据库 的文章

 

随机推荐