我正在尝试使用$ mysqli-> insert_id重命名文件,以便我的程序可以创建多个文件。相反,它只创建一个id为0的文件,每次覆盖该文件而不是创建一个新文件。我想知道我是否需要增加$ mysli-> insert_id或其他东西。
但基本上我希望每个文件都被命名为'job_id'.fasta。现在他们都是0.fasta。
我很困惑,因为当我使用mysqli-> insert_id作为我的insert语句时,它正确地为每个新作业分配job_ids。因此,当我选择SELECT * FROM Job时,我会获得所有工作的大量列表1-100。我希望将从作业创建的文件称为job_id而不是0。
这是我的代码。
<?php
if(isset($_POST['submit'])){
// echo "submit1";
//declare variables to what the user defines them as
$db = $_POST['database'];
$evalue = $_POST['evalue'];
$sequence = $_POST['BlastSearch'];
$hits = $_POST['hits'];
//insert the values into the database
//create a new .fasta file and put the sequence the user wants to search for in that file
$file = 'uploads/'.$mysqli->insert_id.'.fasta';
$current = $_POST['BlastSearch'];
file_put_contents($file, $current);
//execute the BLAST Tool
// Do this execute statement if the user inputs his own sequence. (Use new.fasta)
?>
所以insert_id为了在job_id的数据库中插入一个id而递增,但它在我的$ file ='uploads /'. $ mysqli-&gt; id或我的exec函数中没有增加。
答案 0 :(得分:0)
我猜你错过了某个地方的想法。
根据您的代码,目前尚不清楚您的问题是什么。
让我解释为什么我无法理解你的问题。
这是代码的转换片段:
resources
那么$mysqli->query("INSERT INTO `Job` (`uid`, `input`, `status`, `start_time`, `finish_time`) VALUES ('1', '" . $sequence . "', 'running' , NOW(), NOW())");
$insertedJobId = $mysqli->insert_id;
$mysqli->query("INSERT INTO `BLAST`(`db_name`, `evalue`, `job_id`) VALUES ('" . $db . "','" . $evalue . "', '".$insertedJobId."')") or die(mysqli_error($mysqli));
$insertedBlastId = $mysqli->insert_id;
//execute the BLAST Tool
// Do this execute statement if the user inputs his own sequence. (Use new.fasta)
exec('/students/groups/cs4380sp15grp4/blast/blast-2.2.26/bin/blastall -p blastp -d db -i /students/groups/cs4380sp15grp4/public_html/home/uploads/'.$insertedBlastId.'.fasta -m'.$evalue.' -o outputSEQ -v'.$hits.' -b'.$hits);
id不会增加? insert_id
或$insertedJobId
?