开发者

Select Column Names from SQL Server using PDO

开发者 https://www.devze.com 2023-02-07 23:36 出处:网络
I am attempting to select column names from a SQL Server database with the following code: public function getColumns($table){

I am attempting to select column names from a SQL Server database with the following code:

 public function getColumns($table){

        $columns = array();
        $sql = "select column_name fr开发者_StackOverflowom information_schema.columns where table_name = 'dbo.myTable'";

        $stmt = $this->conn()->prepare($sql);

        try {

            if($stmt->execute()){

                $raw_column_data = $stmt->fetchAll(PDO::FETCH_ASSOC);
                //
                //this is empty so we can stop right there
                //
                echo "<pre>";
                print_r($raw_column_data);
                echo "</pre>";



                }else{
                    echo "<pre>";
                    print_r($stmt->errorInfo());
                    echo "</pre>";
                }

                return $columns;

            } catch (Exception $e){

                    return $e->getMessage(); //return exception

            }
    }

Any ideas why the '$raw_column_data` array might be null? I have searched google high and low with no luck. I am almost positive that this is the correct syntax, and I am sure it is querying the database correctly.


Try removing the "dbo." in this line...

$sql = "select column_name from information_schema.columns where table_name = 'dbo.myTable'";

change to:

$sql = "select column_name from information_schema.columns where table_name = 'myTable'";


Your where statement looks wrong it shouldn't be where table_name = dbo.myTable

it should be

where 
    table_name = 'myTable' 
     and TABLE_SCHEMA = 'dbo'


One simple thing: Take that "dbo." out of the table name. That value will be found in the column "table_schema". So it should be "...where table_name='myTablel'"

Assuming all of your drivers are installed, and that you can get results from other queries, that would do it.

0

精彩评论

暂无评论...
验证码 换一张
取 消