Php 传递数组字符串
我从文本文件结构中读取如下内容: aaa bbb ccc 在数组中写入,现在我需要使用此名称进行查询,选择所有具有此名称的冒号,并将结果写入csv文件,文件读取工作正常,但查询仅返回1行,仅返回数组的最后一行。 帮帮我 这是我的代码:Php 传递数组字符串,php,arrays,csv,Php,Arrays,Csv,我从文本文件结构中读取如下内容: aaa bbb ccc 在数组中写入,现在我需要使用此名称进行查询,选择所有具有此名称的冒号,并将结果写入csv文件,文件读取工作正常,但查询仅返回1行,仅返回数组的最后一行。 帮帮我 这是我的代码: <?php $servername = "localhost"; $username = "root"; $password = ""; $db = "tirocinioriginale"; $con = mysql
<?php
$servername = "localhost";
$username = "root";
$password = "";
$db = "tirocinioriginale";
$con = mysqli_connect($servername, $username, $password,$db);
if (!$con) {
die("Connessione fallita: " . mysqli_connect_error());
}
$myfile = fopen("aziende1.txt", "r") or die("Unable to open file!");
//echo fread($myfile,filesize("aziende1.txt"));
$aziende = array();
while (!feof($myfile)) {
$aziende[] = fgets($myfile);
}
fclose($myfile);
echo implode(',',$aziende);
$query = "SELECT * FROM azienda WHERE nome IN ('".implode("','",$aziende)."')";
$result = $con->query($query);
$azienderow = array();
while($row = $result->fetch_assoc())
{
array_push($azienderow, $row);
}
echo "Connessione successo";
var_dump($azienderow);
//$row = mysql_fetch_assoc($result);
/* $fp = fopen('dumpaziende.csv', 'w');
foreach ($row as $val) {
fputcsv($fp, explode($val));
}
fclose($fp);
*/
//var_dump($aziende);
mysqli_close($con);
?>
产生:
aitech ,Italdata
// ^-- see this space? this is probably the problem
查询的呈现方式如下:
$query = "SELECT * FROM azienda WHERE nome IN ('aitech ','Italdata')";
// the trailing space will impact matching --------^
您可以使用:
implode("','",array_map('trim',$aziende))
或者trim()
在中,而则在存储数据之前循环进行修剪。是否检查了$query
的值?执行打印($result)
查看查询结果。添加ini\u集('display\u errors',1);ini_集(“日志错误”,1);错误报告(E_全部);mysqli_报告(mysqli_报告错误| mysqli_报告严格)代码>到脚本的顶部。这将强制任何mysqli\uuu
错误生成一个异常,您可以在浏览器上看到,其他错误也将在您的浏览器上看到。向我们展示您从print\r($aziende)获得的信息代码>请!编辑您的问题以添加额外信息如果这无法解决问题,请回显$query
,并显示您的目标数据库值,以便我们可以确认您的预期匹配是否存在,如您所述。
implode("','",array_map('trim',$aziende))