作者 主題: bash_shell-->php-->mysql的問題  (閱讀 2674 次)

0 會員 與 1 訪客 正在閱讀本文。

cisco3662

  • 鑽研的研究生
  • *****
  • 文章數: 739
    • 檢視個人資料
bash_shell-->php-->mysql的問題
« 於: 2011-01-20 17:51 »
請教一下,
我希望linux執行完一個bash_shell後可以透過同台主機的另一支php的程式與遠端的mysql溝通並寫入資料到遠端的mysql,具體而言應該如何處理
1.bash_shell已寫好,如何於shell裡將我想寫入資料庫的參數傳遞到php??
2.php程式內如何接收到這些參數??
3.是否還有其他更有效率的溝通方式可以達成我要的目的??
謝謝~~

特級大肉腳

  • 憂鬱的高中生
  • ***
  • 文章數: 113
    • 檢視個人資料
回覆: bash_shell-->php-->mysql的問題
« 回覆 #1 於: 2011-01-20 18:14 »
3.tcl->mysql
這也是一種方式,只是不曉得是不是更有效率的方式......

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: bash_shell-->php-->mysql的問題
« 回覆 #2 於: 2011-01-20 20:01 »
請教一下,
我希望linux執行完一個bash_shell後可以透過同台主機的另一支php的程式與遠端的mysql溝通並寫入資料到遠端的mysql,具體而言應該如何處理
1.bash_shell已寫好,如何於shell裡將我想寫入資料庫的參數傳遞到php??
2.php程式內如何接收到這些參數??
3.是否還有其他更有效率的溝通方式可以達成我要的目的??
謝謝~~

方式1:

vim test01.php
代碼: [選擇]
<?php
  var_dump
($argv);
?>

$ php -q test01.php 12345 09876
array(3) {
  [ 0]=>
  string(10) "test01.php"
  [1]=>
  string(5) "12345"
  [2]=>
  string(5) "09876"
}


方式2: 如果 php 碼是在web server, 可以用 wget

cisco3662

  • 鑽研的研究生
  • *****
  • 文章數: 739
    • 檢視個人資料
回覆: bash_shell-->php-->mysql的問題
« 回覆 #3 於: 2011-01-20 20:11 »
可以請學長解釋一下方法一的意思嗎??
謝謝

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: bash_shell-->php-->mysql的問題
« 回覆 #4 於: 2011-01-20 20:24 »
可以請學長解釋一下方法一的意思嗎??
謝謝

就是將參數傳給程式碼, 上面的例子
第一個參數是 12345, 第二個是 09876
php 會自動將參數值放在 $argv 變數裡

如果要傳的資料很多
也可以考慮先將資料進寫檔案
再由 php 開檔讀取

hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
回覆: bash_shell-->php-->mysql的問題
« 回覆 #5 於: 2011-01-20 20:53 »
怎麼不php cli直接cross?

a: php /tmp/foo/fooBlah.php
->
update b.database by a.fooBlah.php
lifeIsFunWithPHP.

cisco3662

  • 鑽研的研究生
  • *****
  • 文章數: 739
    • 檢視個人資料
回覆: bash_shell-->php-->mysql的問題
« 回覆 #6 於: 2011-01-20 21:38 »
所以意思就是說當我執行
php -q test.php 123 456時
test.php程式會將test.php 123 456等三個值存到陣列變數0、1、2內囉

那如果php要開檔處理應該如何下指令?
還有hikohan學長提及的方式看不怎麼懂
(抱歉...我還是php的新手)

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: bash_shell-->php-->mysql的問題
« 回覆 #7 於: 2011-01-20 23:02 »
所以意思就是說當我執行
php -q test.php 123 456時
test.php程式會將test.php 123 456等三個值存到陣列變數0、1、2內囉

你得到它了  ;)

開檔的話, 要看你的資料是什麼樣的格式
可以配合不同的函數來自動讀取檔案資料
例如用 file() 將檔案資料轉成陣列, 每一行就是一個陣列的元素
或是 file_get_contents() 所有檔案內容存入一個變數裡
fopen() 則是自己讀內檔案資料

請參考
http://tw2.php.net/manual/en/function.file.php
http://tw2.php.net/manual/en/function.file-get-contents.php
http://tw2.php.net/manual/en/function.fopen.php