PHP PDO 准备好的查询不会从 for 循环返回结果
我有以下代码:
$link = new PDO("mysql:dbname=$databasename;host=127.0.0.1",$username,$password);
$query = $link->prepare("SELECT * FROM index WHERE sbeid=:idvar");
for($j = 1; $j < count($array); $j++)
{
if($array[$j][16] == "TRUE" || $array[$j][16] == "FALSE")
{
$paramforquery = $array[$j][25];
$query->bindParam(":idvar",$paramforquery);
$query->execute();
$result = $query->fetchAll();
//do things with the $result
$query->closeCursor();
}
//else if, do stuff
}
$link = null;
$array
是一个大数组,由 CSV 文件的输入组成,该文件通过 fopen()
成功加载。
我的问题是这样的:查询不起作用。 我知道一个事实(使用文件中的一些示例值直接在服务器上运行查询)数据位于数据库中,但是当我 var_dump
时 $result
每次运行 for
循环时,我只会得到一个空数组。
我究竟做错了什么?
TIA。
I have the following code:
$link = new PDO("mysql:dbname=$databasename;host=127.0.0.1",$username,$password);
$query = $link->prepare("SELECT * FROM index WHERE sbeid=:idvar");
for($j = 1; $j < count($array); $j++)
{
if($array[$j][16] == "TRUE" || $array[$j][16] == "FALSE")
{
$paramforquery = $array[$j][25];
$query->bindParam(":idvar",$paramforquery);
$query->execute();
$result = $query->fetchAll();
//do things with the $result
$query->closeCursor();
}
//else if, do stuff
}
$link = null;
$array
is a large array composed of input from a CSV file that successfully loads via fopen()
.
My problem is this: the query just doesn't work. I know for a fact (ran the query directly on the server with some sample values from the file) that the data is in the database, but when i var_dump
the $result
s each time the for
loop runs, I just get an empty array.
What am I doing wrong?
TIA.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
增加错误报告 - 标准建议。
将 pdo 对象的错误模式设置为 ERRMODE_EXCEPTION - 这样您就很难错过错误。
使用调试器或向脚本添加一些调试输出 - 真正的调试器要好得多。
Increase the error reporting - the standard advice.
Set the error mode of the pdo object to ERRMODE_EXCEPTION - you hardly can miss an error that way.
Use a debugger or add some debug output to your script - a real debugger is way better.
您确定正在建立连接吗?
这将捕获尝试连接时出现的任何异常。 如果工作正常,请尝试将查询放在 $link 行下并查看返回的内容。
如果您的查询手动运行,我会说它与您的数据库连接有关。 确保您已打开错误报告。
额外的:
在您的查询中您有这个 :idvar ? 您不应该使用像 $idvar 这样的 PHP 变量吗?
所以
Are you sure you are getting a connection ?
This will catch any exceptions from trying to connect. If this works ok, try putting the query under the $link line and see what's returned.
If your query runs manually, i'd say its something to do with your DB connection. Make sure you've got error reporting turned on.
Additional:
In your query you have this :idvar ? Shouldnt you be using a PHP variable like this $idvar.
so