I have tried two different approaches for introducing a list of names to a MySQL query without any success.
The input file ($contig) contains the following:
00001
00002
Approach 1
Code: Select all
<?php
$fileArr = file($contig);
print_r($fileArr);
try
{
$bdd = new PDO('mysql:host=localhost;dbname=brain_transcriptome', 'root', 'root');
}
catch (Exception $e)
{
die('Error : ' . $e->getMessage());
}
$req = $bdd->query('SELECT name FROM crocodylus_contig_info WHERE 1=1 AND name IN ("'.implode('", "', $fileArr).'")') or die(print_r($bdd->errorInfo()));
while ($donnees = $req->fetch(PDO::FETCH_ASSOC))
{
echo ''.$donnees['name'].'<br />';
}
$req->closeCursor();
?>Code: Select all
<?php
$fileArr = file($contig);
print_r($fileArr);
function arrayToSQLString($fileArr)
{
return '("'.implode('","',array_map('trim', $fileArr)).'")';
}
$params = arrayToSQLString($fileArr);
$query = vsprintf('SELECT name FROM crocodylus_contig_info WHERE 1=1 AND name IN %s',$params);
echo $query;
try
{
$bdd = new PDO('mysql:host=localhost;dbname=brain_transcriptome', 'root', 'root');
}
catch (Exception $e)
{
die('Error : ' . $e->getMessage());
}
$req = $bdd->query($query) or die(print_r($bdd->errorInfo()));
while ($donnees = $req->fetch(PDO::FETCH_ASSOC))
{
echo ''.$donnees['name'].'<br />';
}
$req->closeCursor();
?>I would greatly appreciate ANY suggestions!