Php 尝试使用foreach获取行中的字段
我正在尝试编写一个简单的脚本,它遍历一个文件(名称列表),并使用每一行(名称)生成一个sql查询来获取该名称的idPhp 尝试使用foreach获取行中的字段,php,mysql,Php,Mysql,我正在尝试编写一个简单的脚本,它遍历一个文件(名称列表),并使用每一行(名称)生成一个sql查询来获取该名称的id $linearray = explode("|", file_get_contents('designer.txt')); foreach ($linearray as $line) { $result = mysql_query("SELECT term_id FROM wp_terms WHERE slug = '{$line}'"); $row = mysql_fetch_
$linearray = explode("|", file_get_contents('designer.txt'));
foreach ($linearray as $line) {
$result = mysql_query("SELECT term_id FROM wp_terms WHERE slug = '{$line}'");
$row = mysql_fetch_assoc($result);
echo $row['term_id'];
}
现在,由于某种原因,我只知道最后一个单词term\u id
。虽然如果我试着回应这句话,它会起作用
知道为什么sql只在最后一行执行吗?不要在循环中执行sql查询!SQL查询是一项昂贵的操作,您应该将其限制在最低限度。构建查询以一次性获取所有数据要好得多
$lineArray = array_filter ($lineArray, 'mysql_real_escape_string'); // Protect against SQL injection
$slugList = implode (', ', $lineArray);
$sql = 'SELECT term_id FROM wp_terms WHERE slug IN (' . $slugList . ')';
if ($result = mysql_query ($sql))
{
while ($row = mysql_fetch_assoc ($result))
{
var_dump ($row);
}
}
不要在循环中执行SQL查询!SQL查询是一项昂贵的操作,您应该将其限制在最低限度。构建查询以一次性获取所有数据要好得多
$lineArray = array_filter ($lineArray, 'mysql_real_escape_string'); // Protect against SQL injection
$slugList = implode (', ', $lineArray);
$sql = 'SELECT term_id FROM wp_terms WHERE slug IN (' . $slugList . ')';
if ($result = mysql_query ($sql))
{
while ($row = mysql_fetch_assoc ($result))
{
var_dump ($row);
}
}
designer.txt的格式如何?为什么在explode()
中使用管道“|”
作为分隔符?您不应该对Windows文本文件使用\n
(或\r\n
)?print\r($linearray)的输出是什么代码>?呜。我没有注意到这一点,我从另一个代码中提取了这一行,该代码用于一个包含| as空格的文件。我觉得很难受:)谢谢你注意到我,这就成功了!谢谢。好的:)不过,请阅读戈登姆对你说的话。设计器中不应该有任何双引号(“)。txtdesigner.txt
的格式如何?为什么要使用管道“|”
作为explode()
中的分隔符?你不应该使用\n
(或\r\n
作为Windows文本文件的分隔符)“print\r($linearray);
”的输出是什么?呜呜。我没有注意到,我从另一个包含| as space的文件的代码中提取了这一行。我感觉到这样一个noob:)为注意到我而欢呼,这就成功了!谢谢。好的:)不过,请阅读GordonM对你说的话。designer.txt中不应该有任何双引号(“)