2011-03-04 99 views
0

這是我無法理解的一件事。我正在使用從數據庫中獲取記錄的函數。如果該記錄不存在。它執行插入查詢。我甚至迴應出來確保這2個參數包含某些內容。它確實包含了一些東西。我不明白的是它不執行插入查詢。 我還在另一個不使用函數的腳本上測試了插入查詢。它的工作。使用函數在php中查詢mysql數據庫

function fetch_customer($cust, $credit){ 

$getcnum=query_database("SELECT Cust_Name, CUSID FROM customer_credit WHERE Cust_Name='$cust'","onstor",$link); 

if(mysql_num_rows($getcnum)==0){ 
    $fullname=explode(",", $cust); 
    $lname= $fullname[0]; 
    $fname= $fullname[1]; 


    query_database("INSERT INTO customer_credit(Cust_Name, CREDIT) VALUES('$cust','$credit')",'onstor' ,$link); 

    echo "customer: ".$cust."<br/>"; 

    echo "credit: ".$credit; 
    query_database("INSERT INTO customer_table(CLNAME, CFNAME) VALUES('$lname', '$fname')",'onstor',$link); 

} 

然後我會在稍後調用函數。

fetch_customer($customer, $custcred); 

如果我想調試這個,我該從哪裏開始?

+0

您的$ link從哪裏來?如果它被定義在功能之外,它可能是問題:) – Tsadiq 2011-03-04 15:53:03

+0

'query_database'是做什麼的? – cusimar9 2011-03-04 15:53:08

+0

這是什麼query_database? ,如果你想查詢或插入它應該是mysql_query – sush 2011-03-04 15:53:09

回答

2

我在想你的插入查詢不起作用,因爲,沒有query_database函數定義(除非它是你自己定義的)。

您正在尋找的功能(我相信)是mysql_query

下面是該文檔的鏈接:mysql_query

+0

似乎問題是與使用函數。我有一個包含函數query_database的include語句。我認爲該功能無法看到包含。這就是爲什麼它不起作用。但是,謝謝 – user225269 2011-03-04 16:05:24

1

你確定它進入if語句? mysql_num_rows($ getcnum)== 0 echo mysql_num_rows($ getcnum)並查看有多少行包含,我也注意到'onstor'中的單引號,這可能是你的函數中的問題?

1

如果沒有看到query_database()函數,很難回答。我不知道你爲什麼這樣做,而不是僅僅使用mysql_query(「INSERT INTO ...」)或其他。有可能你的query_database()函數沒有返回正確的查詢變量。

我可以告訴你的唯一的事情是,在上面的代碼中,你缺少一個右括號。 if語句已關閉,但該函數不是。這可能是問題所在。

祝你好運。

0

這裏是PHP代碼查詢mysql的

function fetch_customer($cust, $credit){ 


    $link = mysql_connect('localhost' , 'username' , 'password'); 

    mysql_select_db('onstor' , $link); 

    $getcnum=mysql_query("SELECT Cust_Name, CUSID FROM customer_credit WHERE Cust_Name='$cust'"); 

     if(mysql_num_rows($getcnum)==0){ 
      $fullname=explode(",", $cust); 
      $lname= $fullname[0]; 
      $fname= $fullname[1]; 


      mysq_query("INSERT INTO customer_credit(Cust_Name, CREDIT) VALUES('$cust','$credit')"); 

      echo "customer: ".$cust."<br/>"; 

      echo "credit: ".$credit; 
      mysql_query("INSERT INTO customer_table(CLNAME, CFNAME) VALUES('$lname', '$fname')"); 

     } 
+0

$ link = mysql_connect('localhost','username','password');在這裏你有鏈接。以前,您沒有任何鏈接。您將未定義的var作爲第二個參數傳遞 – Tsadiq 2011-03-04 16:10:42

0

您傳遞$link到數據庫中你query_database($sql, $db, $link),但它不被任何定義。所以它必須是一個全局變量,你忘記聲明。所以,宣佈$link爲全球:

function fetch_customer($cust, $credit) 
{ 
    global $link; 
    // rest of your function 
}