PHP PDO SELECT语句什么都不返回

时间:2015-01-07 18:49:33

标签: php sql select pdo

我不知道我在这里做错了什么,但我只是想连接到数据库搜索主键并将行放在数组中。我能得到的最好的是一个空白的屏幕,我很高兴得到那个。非常感谢.help。

 <?php

    include ('DatabaseAccessV2.php');

    $selectedData=new DatabaseAccess();
    $selectedData->tableToArray();

    ?> 

    <?php
 class DatabaseAccess{
    function tableToArray(){
            $dbName='db1';
            $table='table1';
            $i=1;
            $dbh = new PDO('mysql:host=localhost:3306;dbname='.$dbName, 'root', '');
            $sql = "select Close from '$table' where entryNum ='$i'";
            $sth = $dbh->prepare($sql);
            $sth->execute();
            $result = $sth->fetch(PDO::FETCH_ASSOC);
            echo($result);
        }
}

1 个答案:

答案 0 :(得分:1)

您的代码存在一些问题。

首先,您将表格用单引号括起来,而不是正确的identifier

select Close from '$table'

它应该在刻度线中

select Close from `$table`

如果您没有传递潜在的保留字或者在表名中包含连字符或空格,或者任何让MySQL抱怨的内容,请删除它们。

select Close from $table

在打开连接后立即添加$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);,这会捕获该错误。


然后正如Rizier123在评论中所述,并引用它:

  

试试这个:$ dbh = new PDO(&#39; mysql:host = localhost; port = 3306; dbname =&#39;。$ dbName,&#39; root&#39;,&#39;& #39);也可以:printr _($ result);

您设置端口的方式应该像Rizier所说的那样。

  • 冒号:应为=符号。

赞扬Rizier123


根据手册http://php.net/manual/en/ref.pdo-mysql.connection.php

  

更完整的例子:

mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb

http://php.net/manual/en/ref.pdo-mysql.php

$dbh = new PDO('mysql:host=xxx;port=xxx;dbname=xxx', 'xxx', 'xxx', 
array( PDO::ATTR_PERSISTENT => false));