2013-06-10 2 views
2

2 개의 인수가있는 함수가 있습니다. 여기 여기2 개의 인수가있는 PHP 함수

function listBoats($con,$table){ 
    //get record set for all boats sort them by their "sort" number 
    $queryBoat = "SELECT * FROM " .$table. " WHERE `id` <> 'mainPage' ORDER BY `sort` LIMIT 0, 1000"; 
    $result = mysqli_query($con,$queryBoat); 
    return $result; 
} 

이다 나는 그것이

$result = listBoats($con,"CSINSTOCK"); //run query to list all the boats in the CSINSTOCK table 

나는 그것이 동작하지 않습니다 전화 드렸습니다 방법이다. 그러나 함수 안에 변수 $table = "CSINSTOCK"을 추가하면 작동합니다. 함수가 "CSINSTOCK" 변수를 통과시키지 않는 이유는 무엇입니까?

+3

최상의 결과를 위해, mysqli_query()가 성공적이라고 가정하지 마십시오. 결과를 확인하고 mysqli_error()를 사용하여 오류를 반환해야한다. –

+1

처음에는 함수 내부에서 var_dump ($ con) 및 var_dump ($ table)을 사용하여 전달하려는 내용이 도착하는지 확인했습니다. 나는 theres가 아마도 억압 된 오류 일지 모르지만 "작동하지 않는 것"보다 더 나은 설명 없이는 추측하기가 어렵다고 생각한다. – Rooster

+0

나는 항상이 유형의 질문을보고, [PHP와 MySQL을위한 일반적인 데이터베이스 디버깅]을 읽어야한다. http://jason.pureconcepts.net/2013/04/common-debugging-php-mysql/). –

답변

-1

나는 PDO를 사용하는 것이 좋습니다. 여기에 예제가 있습니다

예. 이 당신의 DBC 클래스 (dbc.php)

<?php 

class dbc { 

    public $dbserver = 'server'; 
    public $dbusername = 'user'; 
    public $dbpassword = 'pass'; 
    public $dbname = 'db'; 

    function openDb() {  
     try { 
      $db = new PDO('mysql:host=' . $this->dbserver . ';dbname=' . $this->dbname . ';charset=utf8', '' . $this->dbusername . '', '' . $this->dbpassword . ''); 
     } catch (PDOException $e) { 
      die("error, please try again"); 
     }   
     return $db; 
    } 

    function getAllData($qty) { 
     //prepared query to prevent SQL injections 
     $query = "select * from TABLE where qty = ?"; 
     $stmt = $this->openDb()->prepare($query); 
     $stmt->bindValue(1, $qty, PDO::PARAM_INT); 
     $stmt->execute(); 
     $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); 
     return $rows; 
    }  
?> 

당신의 PHP 페이지가 있습니다 : 당신이 당신의 데이터베이스에 액세스 할 수있는 경우

<?php 
require "dbc.php"; 

$getList = $db->getAllData(25); 

foreach ($getList as $key=> $row) { 
     echo $row['columnName'] .' key: '. $key; 
    } 

당신이 당신의 필요한 작업을 수행 할 수 있어야합니다.

+0

그게 내 머리 위로. 하지만 고마워. –

+0

실제 질문에 대답하지 않는다면 주석이 될 수 있습니다. – pinkpanther