mysql foreach 报错,mysql奇怪的报错

今天我写php对某个表进行插入,

a7023572c9cd

image.png

之前gff_line我给它取名为 index,导致我一直产生mysql语法报错

a7023572c9cd

$EXM9U%ZFZHR4XUI}}XFX4Y.png

他说明在index附近有报错,我后来才意识到index可能是mysql的标识符,在php5.5.12中不能采用index作为字段名称。

因此我把index改成另外一个名字,我的文件就能跑通了。

顺便附上我的code

function read_all_dir ( $dir )//read all the file from dir

{

$result = array();

$handle = opendir($dir);

if ( $handle )

{

while ( ( $file = readdir ( $handle ) ) !== false )

{

if ( $file != '.' && $file != '..')

{

$cur_path = $dir . DIRECTORY_SEPARATOR . $file;

if ( is_dir ( $cur_path ) )

{

$result['dir'][$cur_path] = read_all_dir ( $cur_path );

}

else

{

$result['file'][] = $cur_path;

}

}

}

closedir($handle);

}

return $result;

}

error_reporting(E_ALL &~E_NOTICE &~E_DEPRECATED);//report the mysql error

$connect = mysqli_connect('localhost','root','','dbcan3') or die('Unale to connect');

$hostdir = "D:/project/gff/cgc_table";//read all the cgc data, the data file is named by genome

$dir = read_all_dir($hostdir);

//print_r($dir);

$i = 0;

foreach ($dir['file'] as $key => $value) {

$fp = fopen($value,"r");

$str ="";

while(!feof($fp)){

$i = $i + 1;

$str = fgets($fp);

$str = trim($str);

if(strcmp($str[0],"+")!=0){//extract the non "+++" line

$arr = explode("\t",$str);

$sql_insert = "INSERT INTO cgc_new_table(gff_line,

type,prev_dis,for_dis,cgc_no,refseq_id,start,end,pro,strand,product,signature,gen,taxid,sp_name)

VALUES ('"

.mysqli_escape_string($connect,$arr[0])."','"

.mysqli_escape_string($connect,$arr[1])."','"

.mysqli_escape_string($connect,$arr[2])."','"

.mysqli_escape_string($connect,$arr[3])."','"

.mysqli_escape_string($connect,$arr[4])."','"

.mysqli_escape_string($connect,$arr[5])."','"

.mysqli_escape_string($connect,$arr[6])."','"

.mysqli_escape_string($connect,$arr[7])."','"

.mysqli_escape_string($connect,$arr[8])."','"

.mysqli_escape_string($connect,$arr[9])."','"

.mysqli_escape_string($connect,$arr[10])."','"

.mysqli_escape_string($connect,$arr[11])."','"

.mysqli_escape_string($connect,$arr[12])."','"

.mysqli_escape_string($connect,$arr[13])."','"

.mysqli_escape_string($connect,$arr[14])."');";

$result_in = mysqli_query($connect, $sql_insert) or die ('Error querying database.'. mysqli_error($connect));

if($i % 10000 == 0)

print $i."\n";

}

}

}

//$result = mysqli_query($connect, $sql) or die ('Error querying database.'. mysqli_error($connect));

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值