iT邦幫忙

1

(已解決)(0504 18:50更新問題)python抓取mysql資料庫的值

我嘗試用Python 套用sql語法去抓取Mysql裡面的'60'數值
但卻是文字印出
https://ithelp.ithome.com.tw/upload/images/20200504/20126577xhXB6KOU0X.png
https://ithelp.ithome.com.tw/upload/images/20200504/20126577tV4d6G77qy.png

'資料庫當前版本:',sqls , '數值:',sql)

https://ithelp.ithome.com.tw/upload/images/20200504/20126577uJG7TPUf4s.png
請問各位資深前輩是哪邊出了問題

echochio iT邦高手 1 級 ‧ 2020-05-03 22:47:44 檢舉
不知您的 python 是否可直連資料庫,可以就用 sql 連吧.....
不行那你的 php 改吐 json 之類的當然吐簡單的字串也可以的
我想用php mysql 添加一個數字(比如說60),然後轉成一個網頁,網頁只有那個字串(60),然後我這邊前台填入那個網址讀取那個網頁字串
請問我該如何使用php mysql 達成吐字串
echochio iT邦高手 1 級 ‧ 2020-05-04 20:59:50 檢舉
怪怪的沒有 cursor.execute
幫你改一下
1
echochio
iT邦高手 1 級 ‧ 2020-05-04 21:04:38
最佳解答

到底吐出來是多少 ?

db = pymysql.connect('localhost','root','raspberry')
cursor = db.cursor()
sql = "SELECT number FROM students"
cursor.execute(sql)
sqls = cursor.fetchall()
print (sqls)

有了 謝謝 可以跟我說一下錯在哪邊嗎?
https://ithelp.ithome.com.tw/upload/images/20200504/201265776fuNNz3vSQ.png

echochio iT邦高手 1 級 ‧ 2020-05-05 18:07:38 檢舉

你可以學習看看 ipython 這種一行一行的 debug 的方法
像是我寫的程式其中一段 ....

sql = "SELECT val FROM `config` WHERE `code` = 'save_upload_url'"
cursor.execute(sql)
records = cursor.fetchall()
save_upload_url = records[0]['val']

其中你要知道 records 是哪種 type
然後你要其中的 一個 "數值" 要如何印出來 ?
例如是 records
這樣你有看到是如何取出來的嗎 ?

3
japhenchen
iT邦高手 1 級 ‧ 2020-05-04 08:01:10

用pymysql來直連MYSQL吧,超級簡單,也沒有轉碼的問題.....

import pymysql


def main():
    myconn = pymysql.connect("127.0.0.1", "admin",
                             "1234567password", "maildata",cursorclass=pymysql.cursors.DictCursor)
    mycursor = myconn.cursor()
    
    ##  SELECT
    mycursor.execute("SELECT * FROM contacts WHERE user_id=6 AND del=0")
    data = mycursor.fetchall()
    for d in data:
        print( d["username"] )                   
        
    ## DELETE UPDATE INSERT
    deletelist = ["wtf","damn","administrator"]
    mycursor.executemany("DELETE FROM contacts WHERE surname = %s",deletelist)
    myconn.commit()
    
if __name__ == "__main__":
    main()    

但如果你有資料安全顧慮或IP不對外的考慮,那.......當這篇是自言自語咯

看更多先前的回應...收起先前的回應...

我想用php mysql 添加一個數字(比如說60),然後轉成一個網頁,網頁只有那個字串(60),然後我這邊前台去讀取那個網頁的字串
請問我該如何使用php mysql 達成吐字串

dragonH iT邦超人 5 級 ‧ 2020-05-04 09:54:30 檢舉

寫成 api

要即時就用 websocket

沒那麼即時就用 long polling

我需要的是api 請問前輩該如何操作把php資料庫的字串轉成api

dragonH iT邦超人 5 級 ‧ 2020-05-04 10:26:56 檢舉

我需要的是api 請問前輩該如何操作把php資料庫的字串轉成api

這要自己寫的

<php?
  echo json_encode(array('value' => 60));

上面的code

會吐出

{value: 60}

然後再透過 http://localhost/{你的php}

來讀取

可以之後再想辦法改成讀database的

請問php的語法是要從資料庫哪邊填入,

dragonH iT邦超人 5 級 ‧ 2020-05-04 10:32:13 檢舉

那個不是填在資料庫

是你的後端code

建議你可以搜尋一下 php 連接 mysql

最近才開始碰php 抱歉 有些東西還在摸

有python的寫法嗎?
因為我是用樹莓派架設資料庫伺服器

dragonH iT邦超人 5 級 ‧ 2020-05-04 11:49:45 檢舉

阿就是 japhenchen大 給你的方法阿

然後樹不樹梅

應該跟語言沒關係

我用PHP直接執行PYTHON...........

$res = trim(exec("/usr/bin/python3 /home/japhen/code/pydata.py '" . $uname . "'"));

話說用PHP直接抓資料庫不行嗎,跨PYTHON好像有點脫褲子放p
我這個CODE不是用來抓資料庫的,而是某些功能用python才做的出來所以才弄成這樣

/images/emoticon/emoticon01.gif

2
淺水員
iT邦研究生 4 級 ‧ 2020-05-04 13:30:33

先釐清一些觀念

  1. php 跟 mysql 是獨立的2個軟體,php 可以把它當作產生 html 的工具,mysql 才是資料庫。
  2. phpMyAdmin 是用 php 寫的軟體,常用來管理資料庫。
  3. 既然 mysql 是獨立的軟體,python 跟 php 一樣有方法可以直接存取資料庫。

如何產生一個HTTP的網站結果像下面這樣
(圖略)
PS:這是我用html寫的

php 現在主要是用 pdo 跟資料庫做溝通,可以參考 PHP PDO基礎介紹(影片版)

我要發表回答

立即登入回答