2011-03-04 130 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 
}