PHP PDO SELECT语句不返回任何内容
我不知道我在这里做错了什么,但我只是尝试连接到数据库搜索主键,并将该行放入数组中。我能得到的最好的是一个空白屏幕,我很高兴能得到它。非常感谢你的帮助PHP PDO SELECT语句不返回任何内容,php,sql,select,pdo,Php,Sql,Select,Pdo,我不知道我在这里做错了什么,但我只是尝试连接到数据库搜索主键,并将该行放入数组中。我能得到的最好的是一个空白屏幕,我很高兴能得到它。非常感谢你的帮助 <?php include ('DatabaseAccessV2.php'); $selectedData=new DatabaseAccess(); $selectedData->tableToArray(); ?> <?php class DatabaseAccess
<?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);
}
}
您的代码有一些地方出错
首先,将表括在单引号中是不正确的
它应该在哪个位置
select Close from `$table`
或者,如果您没有传递潜在的保留字,或者表名中包含连字符或空格,或者任何让MySQL抱怨的内容,请删除它们
select Close from $table
添加$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常)代码>在连接打开后立即执行,这将捕获该错误
然后,正如Rizier123在评论中所述,并引用它:
试试这个:$dbh=newpdo('mysql:host=localhost;port=3306;dbname='。$dbname,'root','');也可以这样做:printr_($result)
你有你的端口设置的方式,应该做的Rizier提到
- 该冒号
:
应该是=
符号
Rizier123的荣誉
按照手册
更完整的示例:
来自
没有错误消息和明显的错误sql错误。添加$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常)代码>在连接打开后立即执行。请尝试以下操作:$dbh=new-PDO('mysql:host=localhost;port=3306;dbname='。$dbname,'root',')代码>也执行:打印结果代码>肯定是个问题,但是Rizier123也提出了一个关于PDO中端口的好观点constructor@ChrisForrence是的,这也可能是一个问题,我之前确实想过。我将引用他的评论,谢谢你,克里斯。
select Close from $table
mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb
$dbh = new PDO('mysql:host=xxx;port=xxx;dbname=xxx', 'xxx', 'xxx',
array( PDO::ATTR_PERSISTENT => false));