mysql_query () prezintă o eroare pentru o funcție PHP inclus

voturi
0

Am două fișiere:

cart_function.php

function get_product_name($pid){
    $result = mysql_query(SELECT product_name FROM product_table WHERE product_id='.$pid.', $link);
    $row = mysql_fetch_array($result);
    return $row['product_name'];
}

cart.php

<?php
    include('cart_function.php');
    $pid = $_GET['product_id'];
    $pname = get_product_name($pid);
    echo $pname;
?>

După ce am executaþi cart.php, indică o eroare

Argumentul furnizat nu este o resursă MySQL-Link valid“

Dacă am executa interogarea direct în baza de date MySQL funcționează perfect. Dacă am folosit get_product_name()funcția direct în cart.php, din nou , nu funcționează. Dar dacă am elimina funcția și de a folosi codul de mai jos, funcționează:

<?php
    $pid = $_GET['product_id'];
    $result = mysql_query(SELECT product_name FROM product_table WHERE product_id='.$pid.',$link);
    $row = mysql_fetch_array($result);
    $pname = $row['product_name'];
    echo $pname;
?>

De ce?

Întrebat 02/10/2012 la 06:40
sursa de către utilizator
În alte limbi...                            


3 răspunsuri

voturi
5

Problema este aici:

function get_product_name($pid){
    $result = mysql_query("SELECT product_name FROM product_table WHERE product_id='".$pid."'",
                          $link);

Ai scris $link, dar valoarea sa nu este furnizat. Trebuie să treci această valoare în argumentul funcției pe măsură ce trec de $pidvaloare, cum ar fi acest lucru:

function get_product_name($pid,$link){
Publicat 02/10/2012 la 06:45
sursa de către utilizator

voturi
0

1) Utilizați direct link-ul de conexiune de date ca link-ul $ în funcție de acest lucru trebuie să se ia în considerare ca variabilă locale și nu are nimic.

2), astfel încât trebuie să declare $ link ca fiind la nivel mondial în funcția.

function get_product_name($pid){
        global $link;
        $result=mysql_query("SELECT product_name FROM product_table WHERE product_id='".$pid."'",$link);
        $row=mysql_fetch_array($result);
        return $row['product_name'];
    }

3) Sau puteți trece $ link ca al doilea argument al get_product_name ($ pid, $ link)

Publicat 02/10/2012 la 06:46
sursa de către utilizator

voturi
-2

Trebuie să utilizați separat bază de date conecta interogare în funcția .. Dacă-l utilizați în pagina dvs. de web funcționează deoarece are o bază de date conectată pentru a lucra la ..

Editare: $ link-ul nu este specificat ...

Publicat 02/10/2012 la 06:47
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more