所以我有我认为是一个非常简单的SELECT查询。查询本身看起来是这样的:MySQL在哪里返回一行
"SELECT id FROM files WHERE name IN ("me_me-about.jpg", "me_me-blog.jpg", "me_me-.jpg")
我想在这三个文件在我的数据库中的ID。他们在他们的桌子上。他们有唯一的ID。 (我这样做,这样我就可以将ID插入到联结表中,以便将它们与用户配置文件关联起来,以防万一您想知道。)我从$ filenames数组创建语句,这只是一个简单的维数组文件名:
$stmt = '(';
for ($i = 0; $i < sizeof($filenames); $i++) {
$stmt .= '"' . $filenames[$i] . '", ';
}
$stmt = substr($stmt, 0, -2);
$stmt .= ')';
$query2 = $this->db->prepare("SELECT id FROM files WHERE name IN " . $stmt);
查询返回一行,最后一行。从我见过的WHERE ... IN语法的所有内容来看,这不应该是?是我无法看到的东西吗?
从PMA(ID,姓名,一年[我回来,一旦这工作])的 “文件”CSV表转储:
"20";"me_me-about.jpg";;"0"
"21";"me_me-blog.jpg";;"0"
"22";"me_me-.jpg";;"0"
的$文件名的print_r:
Array ([0] => me_me-about.jpg [1] => me_me-blog.jpg [2] => me_me-.jpg)
print_r的原始形式$语句(上面我的代码):
("me_me-about.jpg", "me_me-blog.jpg", "me_me-.jpg")
的try-catch来执行。输出$行至$ _SESSION这样我就可以print_r的它的相关页面上:的$ _SESSION
try {
$query2->execute();
$rows = $query2->fetch();
$_SESSION['stmt'] = $rows;
} catch (PDOException $e) {
die($e->getMessage());
}
的print_r [ '语句']:
Array ([id] => 22 [0] => 22)
此外,当您运行** **确切相同的查询你得到了什么在phpmyadmin或在MySQL控制台? –
在PMA中,我得到了所有三行。这是奇怪的事情。 – Jeff
然后,错误必须在此处添加此代码之后。你如何显示输出?我敢打赌,错误就在那里 –