[請益] 連接mysql時抓不到資料

看板PHP作者 (累人啊....)時間13年前 (2012/02/29 14:37), 編輯推噓2(2028)
留言30則, 4人參與, 最新討論串1/1
如題,從php要抓SQL內的資料一直有問題 po上相關的程式碼,請幫我看看 因為一直抓不到資料,所以我就寫了一個function,專門來看連結的情況 該function的部份程式碼是這樣 $LinkID=mysql_connect("127.0.0.1","root","yenchang"); $SQLSyntax="select * from gpm_part.part"; $SQLSyntax2="select ".$Target." from ".$this->dbSchema.".".$Source." where ".$Rule; $Result=mysql_query($SQLSyntax,$LinkID); $Result2=mysql_query($SQLSyntax2,$LinkID); print "<br></br>LinkID=$LinkID"; print "<br></br>SQLSyntax=$SQLSyntax"; print "<br></br>SQLSyntax2=$SQLSyntax2"; print "<br></br>Result=$Result"; print "<br></br>Result2=$Result2"; $Target,$Source,$Rule是這個function的參數 結果如下 LinkID=Resource id #3 SQLSyntax=select * from gpm_part.part SQLSyntax2=select partid,typename,partname from gpm_part.part,type where part.typeid=type.typeid Result=Resource id #4 Result2= 有一個query會失敗,請問是為什麼?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.251.166.219

02/29 14:42, , 1F
你要不要找本書看啊...= =
02/29 14:42, 1F

02/29 14:44, , 2F
你印 Resource 出來, 當然看不到資料啊...
02/29 14:44, 2F

02/29 14:44, , 3F
我有書啊,但是不知道為什麼(我有C++的基礎,就直接寫了)
02/29 14:44, 3F

02/29 14:44, , 4F
這個只是在測試@@
02/29 14:44, 4F

02/29 14:47, , 5F
若把Result2後面加上
02/29 14:47, 5F

02/29 14:47, , 6F
or die("Invalid query: " . mysql_error());
02/29 14:47, 6F

02/29 14:47, , 7F
則會顯示:Invalid query: No database selected
02/29 14:47, 7F

02/29 14:48, , 8F
請問為什麼抓不到DB?
02/29 14:48, 8F

02/29 14:48, , 9F
你不是就找到問題了嗎.. = ="
02/29 14:48, 9F

02/29 14:49, , 10F
要先選 database ,mysql_db_select 之類的,或是加在
02/29 14:49, 10F

02/29 14:49, , 11F
第二個參數
02/29 14:49, 11F

02/29 14:50, , 12F
sorry, 正確的是 mysql_select_db
02/29 14:50, 12F

02/29 14:50, , 13F
你沒下 mysql_select_db 去告訴要哪個db...
02/29 14:50, 13F

02/29 14:52, , 14F
直接在語法內有db名稱這樣是不行的?
02/29 14:52, 14F

02/29 14:54, , 15F
你說的是 table name 吧?要先給 database name 喔
02/29 14:54, 15F

02/29 14:54, , 16F
那為何Result可以呢?
02/29 14:54, 16F

02/29 14:57, , 17F
有啊,看一下print的結果,DB Name和TB Name都有
02/29 14:57, 17F

02/29 14:57, , 18F
type 沒有加 db name ?
02/29 14:57, 18F

02/29 15:01, , 19F
第一條會過是因為你在語法中加了db的指定,第二條則有缺~
02/29 15:01, 19F

02/29 15:04, , 20F
php有沒有compiler啊,不然實在是不方便@@
02/29 15:04, 20F

02/29 15:04, , 21F
結果似乎正常了,謝謝兩位的幫忙
02/29 15:04, 21F

02/29 15:37, , 22F
你錯得是 mysql 邏輯,php 當然找不到 XD
02/29 15:37, 22F

02/29 15:54, , 23F
把query印出來丟到sql裡跑看看
02/29 15:54, 23F

02/29 17:33, , 24F
就是丟到sql語法OK才傷腦筋,容易忽略DB name
02/29 17:33, 24F

02/29 19:09, , 25F
最好的方法就是用 console 連 mysql debug XD
02/29 19:09, 25F

02/29 19:09, , 26F
這樣就會指出沒先選 db 的 error, pma 你進去點了 db 就
02/29 19:09, 26F

02/29 19:09, , 27F
幫你作掉那段了~ 如果你沒做跨 db select 的話,最好
02/29 19:09, 27F

02/29 19:10, , 28F
先選 db, 至少這樣 sql 的字比較少 XD
02/29 19:10, 28F

02/29 21:47, , 29F
能不講說一下作法?google一下看到的都是一般的連線
02/29 21:47, 29F

03/01 11:38, , 30F
如果你的主機可以 ssh/telnet 就連進去直接下 mysql 指令
03/01 11:38, 30F
文章代碼(AID): #1FJSUntn (PHP)
文章代碼(AID): #1FJSUntn (PHP)