MySQL是使用什么开发工具编写c语言编写的代码程序序的?

php+mysql开发网站程序,用什么软件更容易上_百度知道
php+mysql开发网站程序,用什么软件更容易上
我有更好的答案
两块钱解决你的问题。你这个问题不是很能理解,你如果是说编写软件,有很多,直接百度编程笔记本就好了。
采纳率:86%
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。开发 | 只需一步!教你如何轻松部署小程序后端
知晓程序注
在新版「微信 web 开发者工具」中,新增了「腾讯云」集成功能。
利用它,你可以在「微信 web 开发者工具」中,直接集成后端代码编写、腾讯云部署等一系列操作。
那么,这个腾讯云集成工具应该如何使用呢?知晓程序(微信号 zxcx0101)今天分享的这篇文章,就来一步步教你用开发者工具开发后端代码。
关注「知晓程序」微信公众号,回复「开发」,获取小程序开发全套教程。
前端程序员开发一个自己的小程序,比起学习小程序开发,更大的难点在于搭建小程序的后台。
本文从一个初学者的角度,简单介绍一下腾讯云推出的小程序解决方案 wafer2,让没有后台开发经验的程序员,也能搭建起自己的小程序后台。
1. wafer 是什么?
后台的搭建,涉及从购买服务器和数据库,到服务器上安装运行环境等一系列的流程。
说实话,我连要在服务器上该装什么都不知道,所以希望有人可以帮我把这些都做好——要是能帮我完成一些小程序的常用接口,就更好了。
没错,这就是 wafer 所做的事情。
在小程序后台,配置安全域名的的地方,就有跳转到腾讯云的链接。点击它,就可以直接到腾讯云购买服务器配置。
进入后按照指引购买,就可以拥有一个配置好的后端服务器,就可以进行后端开发。
2. wafer 的升级版:wafer 2
相对于完全自己搭建后端服务器,wafer 已经方便很多了,但我用起来还是感觉有难度。
我不熟悉 Linux,也搞不懂如何测试代码,直到发现腾讯云又推出了 wafer 2。
如果你用上了新版小程序开发工具,会在工具的右上角发现一个「腾讯云」的按钮,点击它,就会进入腾讯云配置菜单。
关注「知晓程序」微信公众号,回复「工具」,获取新版开发者工具下载地址。
有了它,我们可以直接在小程序开发工具里,编写、上传后端代码了。需要注意的是,wafer 2 后端环境区分开发环境和生产环境的。
下面,我们看看怎么使用 wafer2。
搭建 wafer 2 环境
1. 环境搭建与部署
搭建 wafer 2 的开发环境很简单,大家按照官方文档来,应该没什么问题的,这里就不赘述了。
关注「知晓程序」微信公众号,回复「wafer」,获取 wafer 2 官方文档地址。
然而,官方文档里说的都是开发环境。想要将后端代码部署到生产环境,有些配置需要改一下。
开发环境的域名是腾讯云分配的 xxx.qcloud.la,而生产环境需要使用自己在腾讯云里的域名。
通过腾讯云管理中心注册的域名,会自动部署 HTTPS 证书。但是要备案的话,需要登记服务器 IP,而 wafer 2 的服务器 IP 是没有提供给我们的。
也就是说,目前想要使用经过备案的服务器,只能再租一个服务器来备案……
绑定域名后,可以在开发工具「详情」-「腾讯云状态」确认生产环境域名。
切换到生产环境后,别忘了小程序代码里的域名和接口,它们也需要改一下。
接下来,我们要在腾讯云管理中心里,修改生产环境 MySQL 的登录密码。
然后,利用 phpMyAdmin,在首页可以看到 MySQL 的服务器 IP 地址,记下来。
回到开发工具,找到 server/config.js,修改里面 MySQL 配置的 IP 地址及登录密码:
host: '修改为生产环境 ip',
port: 3306,
user: 'root',
db: 'cAuth',
pass: '修改为生产环境密码',
char: 'utf8mb4'
在开发工具上传正式代码,再到管理中心的生产环境,点击「代码部署」。这样就完成生产环境的配置及部署了。
需要注意的是,开发环境的 MySQL 版本号是 5.7,而生产环境是 5.6。所以不要在开发时使用 JSON 等等这类 MySQL 5.7 才有的功能。
亲自试试看,wafer 2 好用吗?
说了这么多部署的问题,看上去确实要比以往要简单很多。但它实际用起来是什么感受?
现在,我就来说说我在利用 wafer 2 过程中,我的体会与所遇到的问题。
1. 用 wafer 2 封装的接口:小程序登录
先说来谈谈所有并小程序都会用到的接口:微信登录接口。
wafer2 的客户端及服务端 SDK,已经集成了登录逻辑,在客户端引用 SDK 后,只要调用它的 login 方法,就可以在小程序里,实现微信登录功能。
qcloud.login({
success: res =& {
console.log('登录成功', res)
fail: err =& {
console.log('登录失败', err)
登录成功后,会将用户数据保存在数据库 cAuth 的 cSessionInfo 表里,并将用户数据返回。
看起来很美好,但是这里面是存在一些问题的。
例如,用户登录过之后会将用户信息缓存在本地,有缓存时会将用户信息直接返回。在 SDK 中,缓存的读写都是有问题的,有缓存时会返回 undifined。
这是个很低级的错误,问题已经给官方反馈了。截止到写这篇文章,取数据的地方改了,但存的地方还没改……
所以,如果现在想要继续正常使用 wafer 2,需要到 wafer2-client-sdk/lib/login.js,找到保存用户数据配置的这一行:
Session.set(res.skey);
找到之后,将它修改成这样:
Session.set(res);
另外还想吐槽一下,SDK 里 wx.login 和 wx.getUserInfo 是需要搭配使用的——也就是说,必须要先获取到用户信息,才能实现登录。
而我们知道,小程序在获取用户信息时会弹窗,并且用户是可以拒绝的。用户拒绝登录后,调用 wx.getUserInfo 都不会再弹窗。
可以说,wafer 2 完全没有考虑用户拒绝授权的情况。而这恰好是微信不提倡的做法,有时,甚至可能导致小程序无法通过审核。
这个问题我也向官方反馈了。
2. 尝试自己写一个接口
学习要有目的性才能保持兴趣,所以,我就尝试利用 wafer 2,写了一个自己的接口。
需要注意的是:wafer 2 基于 Node.js 平台,使用了 Koa 2 框架,所以我们的教程也会基于这个环境完成。
我们在 server/controllers 下新建文件 hello.js,然后在文件中,输入如下代码:
module.exports = async ctx =& {
ctx.state.data = "Hello World !"
代码很简单,就是暴露一个返回结果是「Hello World !」的方法,「Hello World !」会被放在请求结果的 data 里。
然后我们打开 server/routes/index.js,添加一句代码:
// 测试接口
router.get('/hello', controllers.hello)
没错,代码就只有这么多。
保存之后点击「腾讯云」-「上传测试代码」,如果是第一次上传,记得勾上「部署后自动安装依赖」。
等待上传成功,就可以测试我们的接口了。用浏览器访问 xxx.qcloud.la/weapp/hello,看是否返回以下结果:
data: "Hello World !"
恭喜!你自己开发的第一个接口已经调通了!接下来,我们再看看,前后端如何协同处理网络请求和参数。
3. 深入使用 wafer 2 开发
为了满足小程序前后端协同信息处理的需求,SDK 里也封装了网络请求的方法,就是使用 qcloud.request 进行网络请求。
利用它,我们可以确认用户的登录状态,并将用户的会话信息带给服务器。如果没有这些需求,用回 wx.request 也没事。
至于后端,用平常的方法写 API 接口,就可以在小程序里使用了。
需要额外说一下的,是数据库的使用。wafer 2 使用了 Knex 作为数据库的查询构造器,而且已经帮你配置好了。
对于有 SQL 经验的程序员,利用它可以很快上手数据库开发。
进入 phpMyAdmin,我们可以在在 cAppinfo 这个数据库里,创建需要的表。
我们假设已经有一个名为「Book」的表,那么我们应该如何在 wafer2 里,对数据库进行增查改删呢?
话不多说,上代码:
const { mysql } = require('../qcloud')
const uuid = require('node-uuid')
module.exports = async ctx =& {
var id = uuid.v1()
var book = {
name: "冰与火之歌",
await mysql("Book").insert(book)
var res = await mysql("Book").where({ id }).first()
await mysql("Book").update({ price: 66 }).where({ id })
await mysql("Book").del().where({ id })
ctx.state.data = "OK"
数据库操作默认都是异步执行的,如果业务需要数据库读写使用同步方法执行,你需要在操作语句前加上 await。
更高级的 SQL 用法,可以查看 Knex.js 官网。
我已经将自己的小程序「碰词er」后台迁移到 wafer2 了。开发的时候各种坑,给腾讯云提了一些很明显的 bug。没准,「碰词 er」是第一个使用 wafer 2 的小程序。
wafer 2 用起来确实方便。我们不用懂太多后台配置的东西,前后端代码都在小程序开发工具编写,直接在开发工具上传后端代码。
利用它,你可以区分开发、生产环境,而且目前还是免费的,虽说不知道会不会一直有免费版。
但目前缺点同样明显:比如备案不方便、登录接口不合理、SDK 有 bug 等等。期间,我还碰到过服务器宕机、需要手动重启的情况。希望腾讯云接下来能解决这些问题。
总的来说,wafer 2 使用门槛低,但现在还不够稳定。个人项目玩玩还是可以的,商业项目要用的话,建议再观察一段时间吧。
「碰词 er」小程序使用链接
关注「知晓程序」公众号 ?
在微信后台回复「开发」,获取小程序开发全套教程。
在微信后台回复「666」,加入知晓开发联盟。
有好的产品或者项目希望我们报道,猛戳这里
207文章总数
全新爱范儿 App 现已适配
Android 及 iPhone
使用微信扫码关注爱范儿微信公众号
关注爱范儿微信号,连接热爱,关注这个时代最好的产品。
想让你的手机好用到哭?关注这个号就够了。
关注玩物志微信号,就是让你乱花钱。& Mysql C语言API编程入门讲解之详细篇
Mysql C语言API编程入门讲解之详细篇
&&&&&& 软件开发中我们经常要访问数据库,存取数据,之前已经有网友提出让鸡啄米讲讲数据库编程的知识,本文就详细讲解如何使用的C语言API进行数据库编程。&&&&&& API,全称Application Programming Interfaces,即应用程序编程接口,我们可以调用这些接口,执行API函数提供的功能。&&&&&& Mysql C语言API就是用C语言编写的Mysql编程接口,使用这些接口函数可以实现对Mysql数据库的查询等操作。&&&&&&&&&&&Mysql的安装&&&&&&&&& 要进行Mysql编程首先要在充当Mysql服务器的电脑和本机上都安装Mysql,服务器上的Mysql用来连接查询,本机上的Mysql作为开发之用,当然本机也可以兼顾服务器和开发之用。下载Mysql可以到。鸡啄米安装的是&Windows (x86, 64-bit), MSI Installer&版本。&&&&&& 在Mysql安装过程中,安装选项一定要选上Development Components下的Client C API library(shared),这样才会将Mysql API的头文件和动态库安装到电脑中。&&&&&& 安装完成后,我们编程要用的就是include目录下的头文件和lib目录下的库文件。&&&&&& Mysql&API数据结构&&&&&&&&& Mysql API中用到了很多结构体等数据类型,下面就简单说说常用的几个数据结构的含义,至于它们的定义鸡啄米就不贴了,大家可以到Mysql提供的mysql.h头文件中查看。&&&&&& MYSQL&&&&&& 连接数据库前,必须先创建MYSQL变量,此变量在很多Mysql API函数会用到。它包含了一些连接信息等数据。&&&&&& MYSQL_RES&&&&&& MYSQL_RES结构体中包含了查询结果集,也就是从数据库中查询到的数据。可以使用mysql_store_result或mysql_use_result函数获得。&&&&&& MYSQL_ROW&&&&&& MYSQL ROW的定义如下:&&&&&&&&&&&& typedef char **MYSQL_ROW;&&&&&& 可见,它实际上是char **类型,指向一个字符串数组。可以通过mysql_fetch_row函数获得。&&&&&& MYSQL_FIELD&&&&&& MYSQL_FIELD中包含了字段名、字段类型和大小等信息。可以重复调用mysql_fetch_field函数获得所有字段的信息。&&&&&& Mysql C API编程步骤&&&&&& 1、首先我们要包含mysql的头文件,并链接mysql动态库。即添加以下语句:
#include&&WinSock2.h&&&&&&&//&进行网络编程需要winsock2.h &&
#include&&mysql.h& &&
#pragma&comment(lib,&&libmysql.lib&)&&&&&&&&&2、创建MYSQL变量。如:&&&&&&&MYSQL&&&&&&&3、初始化MYSQL变量。&&&&&& mysql_init(&mysql);&&&&&& 4、调用mysql_real_connect函数连接Mysql数据库。mysql_real_connect函数的原型如下:
MYSQL&*&&STDCALL&mysql_real_connect(MYSQL&*mysql,&const&char&*host,const&char&*user,const&char&*passwd,const&char&*db,unsigned&int&port,const&char&*unix_socket,unsigned&long&clientflag);&&&&&&&&&& 参数说明:mysql--前面定义的MYSQL变量;host--MYSQL服务器的地址;user--登录用户名;passwd--登录密码;db--要连接的数据库;port--MYSQL服务器的TCP服务端口;unix_socket--unix连接方式,为NULL时表示不使用socket或管道机制;clientflag--Mysql运行为ODBC数据库的标记,一般取0。&&&&&& 连接失败时该函数返回0。&&&&&& 5、调用mysql_real_query函数进行数据库查询。mysql_real_query函数的原型如下:&&&&&& int&&STDCALL mysql_real_query(MYSQL *mysql, const char *q, unsigned long length);&&&&&& 参数说明:mysql--前面定义的MYSQL变量;q--SQL查询语句;length--查询语句的长度。&& &&& 查询成功则该函数返回0。&&&&&& 6、通过调用mysql_store_result或mysql_use_result函数返回的MYSQL_RES变量获取查询结果数据。&& &&& 两个函数的原型分别为:&&&&&& MYSQL_RES *&&&& STDCALL mysql_store_result(MYSQL *mysql);&&&&&& MYSQL_RES *&&&& STDCALL mysql_use_result(MYSQL *mysql);&& &&& 这两个函数分别代表了获取查询结果的两种方式。第一种,调用mysql_store_result函数将从Mysql服务器查询的所有数据都存储到客户端,然后读取;第二种,调用mysql_use_result初始化检索,以便于后面一行一行的读取结果集,而它本身并没有从服务器读取任何数据,这种方式较之第一种速度更快且所需内存更少,但它会绑定服务器,阻止其他线程更新任何表,而且必须重复执行mysql_fetch_row读取数据,直至返回NULL,否则未读取的行会在下一次查询时作为结果的一部分返回,故经常我们使用mysql_store_result。&&&&&& 7、调用mysql_fetch_row函数读取结果集数据。&&& && 上述两种方式最后都是重复调用mysql_fetch_row函数读取数据。mysql_fetch_row函数的原型如下:&&&&&& MYSQL_ROW&STDCALL mysql_fetch_row(MYSQL_RES *result);&&&&&& 参数result就是mysql_store_result或mysql_use_result的返回值。&& &&& 该函数返回MYSQL_ROW型的变量,即字符串数组,假设为row,则row[i]为第i个字段的值。当到结果集尾部时,此函数返回NULL。&&&&&& 8、结果集用完后,调用mysql_free_result函数释放结果集,以防内存泄露。mysql_free_result函数的原型如下:&&&&&& void&&STDCALL mysql_free_result(MYSQL_RES *result);&&&&&& 9、不再查询Mysql数据库时,调用mysql_close函数关闭数据库连接。mysql_close函数的原型为:&&&&&& void STDCALL mysql_close(MYSQL *sock);&&&&&& Mysql C API编程实例&&&&&& 鸡啄米这里给大家一个简单的Mysql API编程实例。使用编写。访问的数据库为安装Mysql后默认创建的名称为&mysql&的数据库,查询其&user&表的数据,步骤如下:&&&&&& 1、创建一个Win32 Console Application(Win32控制台程序)的空工程(创建空工程需要在向导的Application Settings一步中,勾选Empty project),名称就取为mysql。&& &&& 2、在Solution Explorer窗口的工程名&mysql&上点右键,选择&Properties&,弹出工程的属性页,然后在左侧子窗口中,选择Configuration Properties-&VC++ Directories,右侧子窗口中会显示一些设置项列表,然后在Include Directories项中添加Mysql的Include目录,在Library Directories项中添加Mysql的lib目录。&&&&&&& 3、新建一个cpp文件,取名mysql.cpp。&&&&&& 4、在mysql.cpp文件中包含mysql头文件并链接mysql动态库。
#include&&WinSock2.h& &&
#include&&mysql.h& &&
#pragma&comment(lib,&&libmysql.lib&)&&&& &&& 这里要注意,因为mysql用到了网络连接的接口函数,所以需要在前面包含WinSock2.h文件。&& &&& 同时本例中使用了输出流cout,所以还要包含输入输出流头文件:
#include&&iostream& &&
using&namespace&&&&& &&& 5、创建main函数,并修改函数体如下:
int&main()&&
&&&&MYSQL&&&
&&&&MYSQL_RES&*&&
&&&&MYSQL_ROW&&&
&&&&mysql_init(&mysql);&&
&&&&if&(!mysql_real_connect(&mysql,&&127.0.0.1&,&&user&,&&123&,&&mysql&,&))&&
&&&&&&&&cout&&&&&mysql_real_connect&failure!&&&&&&&
&&&&&&&&return&0;&&
&&&&if&(mysql_real_query(&mysql,&&select&*&from&user&,&(unsigned&long)strlen(&select&*&from&user&)))&&
&&&&&&&&cout&&&&&mysql_real_query&failure!&&&&&&&
&&&&&&&&return&0;&&
&&&&res&=&mysql_store_result(&mysql);&&
&&&&if&(NULL&==&res)&&
&&&&&&&&cout&&&&&mysql_store_result&failure!&&&&&&&
&&&&&&&&return&0;&&
&&&&while&(row&=&mysql_fetch_row(res))&&
&&&&&&&&cout&&&&row[0]&&&&&&
&&&&mysql_free_result(res);&&
&&&&mysql_close(&mysql);&&
&&&&return&0;&&
}&&&& &&& 6、将mysql安装目录中的libmysql.dll动态库文件拷贝到工程的当前目录,运行程序。&& &&& 如果你跟鸡啄米一样使用的是mysql的64位版本,此时程序会报错,有很多不能解析的符号,这是因为我们的工程是32位的,应该改为64位,方法是,上面的工程属性页的右上角有个Configuration Manager按钮,点击它弹出Configuration Manager对话框,下面的列表中可以看到有我们的工程,Platform列显示为&Win32&:&&&&&& 这里需要点击右侧的箭头下拉,选择New弹出New Project Platform对话框,New platform选择x64创建新Platform:&&&&&& 上述的Platform列选择x64就可以了。再次运行程序,你会发现它果然不报错了。&& &&& 本文就到这里了,到此大家应该对Mysql C API编程有了基本的了解了,在实际开发中可以不断深入研究。
除非特别注明,文章均为原创
转载请标明本文地址:
作者:鸡啄米
&&( 22:56:16)&&( 21:18:20)&&( 21:53:41)&&( 22:4:12)&&( 21:56:47)&&( 21:53:16)&&( 22:0:34)&&( 22:19:2)&&( 22:53:50)&&( 21:22:28)
曾今对C语言非常感兴趣,自己也自学了一段时间,但还是由于工作原因没有坚持下来
路过看看。。。由 鸡啄米 于
22:19:10 最后编辑
是啊,我在学校的时候也学了,但现在已经全部还给老师了,一点都不懂了。
小白拜谢站长,受益良多!!!
很不错,顶一下
请问下,你的VS2008也是64位的吗? 我的32位的,后面的配置属性不大一样
总是连接数据库失败,都按照你上面的方法了
完全随机文章使用数据库客户端工具Oracle SQL Developer加载第三方驱动连接mysql的方法
互联网 & 04-25 14:08:09 & 作者:佚名 &
Oracle SQL Developer是Oracle官方提供的数据库连接工具。不仅可以连接自己的数据库(Oracle),而且还可以连接多种其他的数据库,下面以mysql为例介绍一下使用方法
Oracle SQL Developer是Oracle官方提供的数据库连接工具。不仅可以连接自己的数据库(Oracle),而且还可以连接多种其他的数据库(比如:Access、MySQL、SQL Server、DB2等等)。
SQL Developer是纯JAVA应用程序,在Oracle SQL Develper官网下载压缩包,解压后直接使用。 SQL Developer需要JDK的支持,可以下载带JDK的压缩包(默认不包含)。
官网下载地址:http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
该工具默认提供Oracle和Access两种数据库的连接,但是扩展性很强。连接其他数据库,仅需添加第三方驱动程序即可。
如何加载第三方驱动(以mysql为例) 1.下载数据库连接的jar包,我这里准备的是:
2.将jar包放入OracleSqlDeveloper的安装目录下的&jlib&目录,比如我的是:D:\Program Files\sqldeveloper\jlib
3.启动OracleSqlDeveloper,选择&工具&-&首选项&-&数据库&-&第三方jdbc驱动程序&:
4.选择【添加条目】,找到刚刚添加的jar包:
5.重新启动Oracle之后,创建数据库链接的地方就可以看到MySql的选项:
6.这样就可以连接到mysql了。
呵呵,理论上可以支持所有数据库,只要有第三方数据库驱动程序即可。很好很强大!程序相关配置信息保存在C:\Documents and Settings\Administrator\Application Data\SQL Developer中.
各类数据库第三方数据驱动程序(第三方JDBC)
SQLServer JDBC:jtds-*.jar
下载地址:
Sybase: jconn2.jar 或 jconn3.jar
Mysql JDBC : mysql-connector-java-*.jar
官方下载:
DB2:db2jcc.jar、db2jcc_license_cu.jar
Oracle:classes12.zip 或 ojdbc14.jar
大家感兴趣的内容
12345678910
最近更新的内容

我要回帖

更多关于 小程序代码开发工具 的文章

 

随机推荐