作者tyc5116 (累人啊....)
看板PHP
標題[請益] 連接mysql時抓不到資料
時間Wed Feb 29 14:37:34 2012
如題,從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
1F:→ gname:你要不要找本書看啊...= = 02/29 14:42
2F:→ gname:你印 Resource 出來, 當然看不到資料啊... 02/29 14:44
3F:→ tyc5116:我有書啊,但是不知道為什麼(我有C++的基礎,就直接寫了) 02/29 14:44
4F:→ tyc5116:這個只是在測試@@ 02/29 14:44
5F:→ tyc5116:若把Result2後面加上 02/29 14:47
6F:→ tyc5116:or die("Invalid query: " . mysql_error()); 02/29 14:47
7F:→ tyc5116:則會顯示:Invalid query: No database selected 02/29 14:47
8F:→ tyc5116:請問為什麼抓不到DB? 02/29 14:48
9F:→ gname:你不是就找到問題了嗎.. = =" 02/29 14:48
10F:→ chrisQQ:要先選 database ,mysql_db_select 之類的,或是加在 02/29 14:49
11F:→ chrisQQ:第二個參數 02/29 14:49
12F:→ chrisQQ:sorry, 正確的是 mysql_select_db 02/29 14:50
13F:→ gname:你沒下 mysql_select_db 去告訴要哪個db... 02/29 14:50
14F:→ tyc5116:直接在語法內有db名稱這樣是不行的? 02/29 14:52
15F:推 chrisQQ:你說的是 table name 吧?要先給 database name 喔 02/29 14:54
16F:→ tyc5116:那為何Result可以呢? 02/29 14:54
17F:→ tyc5116:有啊,看一下print的結果,DB Name和TB Name都有 02/29 14:57
18F:→ chrisQQ:type 沒有加 db name ? 02/29 14:57
19F:→ gname:第一條會過是因為你在語法中加了db的指定,第二條則有缺~ 02/29 15:01
20F:→ tyc5116:php有沒有compiler啊,不然實在是不方便@@ 02/29 15:04
21F:→ tyc5116:結果似乎正常了,謝謝兩位的幫忙 02/29 15:04
22F:→ chrisQQ:你錯得是 mysql 邏輯,php 當然找不到 XD 02/29 15:37
23F:推 rocairforce:把query印出來丟到sql裡跑看看 02/29 15:54
24F:→ tyc5116:就是丟到sql語法OK才傷腦筋,容易忽略DB name 02/29 17:33
25F:→ chrisQQ:最好的方法就是用 console 連 mysql debug XD 02/29 19:09
26F:→ chrisQQ:這樣就會指出沒先選 db 的 error, pma 你進去點了 db 就 02/29 19:09
27F:→ chrisQQ:幫你作掉那段了~ 如果你沒做跨 db select 的話,最好 02/29 19:09
28F:→ chrisQQ:先選 db, 至少這樣 sql 的字比較少 XD 02/29 19:10
29F:→ tyc5116:能不講說一下作法?google一下看到的都是一般的連線 02/29 21:47
30F:→ chrisQQ:如果你的主機可以 ssh/telnet 就連進去直接下 mysql 指令 03/01 11:38