| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 
 | local function close_db( db )if not db then
 return
 end
 db:close()
 end
 
 local mysql = require("resty.mysql")
 
 local db, err = mysql:new()
 if not db then
 ngx.say("new  mysql error:", err)
 return
 end
 
 db:set_timeout(5000)
 
 local props = {
 host = "172.19.237.44",
 port = 3306,
 database = "fuhuitest",
 user = "root",
 password = "wsy@123456"
 }
 
 local res, err, errno, sqlstate = db:connect(props)
 
 if not res then
 ngx.say("connect to mysql error : ", err, " , errno : ", errno, " , sqlstate : ", sqlstate)
 return close_db(db)
 end
 
 
 local drop_table_sql = "drop table if exists test"
 res, err, errno, sqlstate = db:query(drop_table_sql)
 if not res then
 ngx.say("drop table error : ", err, " , errno : ", errno, " , sqlstate : ", sqlstate)
 return close_db(db)
 end
 
 
 local create_table_sql = "create table test(id int primary key auto_increment, ch varchar(100))"
 res, err, errno, sqlstate = db:query(create_table_sql)
 if not res then
 ngx.say("create table error : ", err, " , errno : ", errno, " , sqlstate : ", sqlstate)
 return close_db(db)
 end
 
 
 local insert_sql = "insert into test (ch) values('hello')"
 res, err, errno, sqlstate = db:query(insert_sql)
 if not res then
 ngx.say("insert error : ", err, " , errno : ", errno, " , sqlstate : ", sqlstate)
 return close_db(db)
 end
 
 res, err, errno, sqlstate = db:query(insert_sql)
 
 ngx.say("insert rows : ", res.affected_rows, " , id : ", res.insert_id, "<br/>")
 
 
 local update_sql = "update test set ch = 'hello2' where id =" .. res.insert_id
 res, err, errno, sqlstate = db:query(update_sql)
 if not res then
 ngx.say("update error : ", err, " , errno : ", errno, " , sqlstate : ", sqlstate)
 return close_db(db)
 end
 
 ngx.say("update rows : ", res.affected_rows, "<br/>")
 
 
 local select_sql = "select id, ch from test"
 res, err, errno, sqlstate = db:query(select_sql)
 if not res then
 ngx.say("select error : ", err, " , errno : ", errno, " , sqlstate : ", sqlstate)
 return close_db(db)
 end
 
 for i, row in ipairs(res) do
 for name, value in pairs(row) do
 ngx.say("select row ", i, " : ", name, " = ", value, "<br/>")
 end
 end
 
 ngx.say("<br/>")
 
 
 local ch_param = ngx.req.get_uri_args()["ch"] or ''
 
 local query_sql = "select id, ch from test where ch = " .. ngx.quote_sql_str(ch_param)
 res, err, errno, sqlstate = db:query(query_sql)
 if not res then
 ngx.say("select error : ", err, " , errno : ", errno, " , sqlstate : ", sqlstate)
 return close_db(db)
 end
 
 for i, row in ipairs(res) do
 for name, value in pairs(row) do
 ngx.say("select row ", i, " : ", name, " = ", value, "<br/>")
 end
 end
 
 
 local delete_sql = "delete from test"
 res, err, errno, sqlstate = db:query(delete_sql)
 if not res then
 ngx.say("delete error : ", err, " , errno : ", errno, " , sqlstate : ", sqlstate)
 return close_db(db)
 end
 
 ngx.say("delete rows : ", res.affected_rows, "<br/>")
 
 close_db(db)
 
 |