我无法插入到我的数据库。我的插入语句之一,因为当我做一个选择*从表;我得到新的记录。然而,我想要插入的其他表没有任何值,当我从中选择*。插入到MySQL数据库不能从PHP工作
,我想插入值2代表的DDL是
CREATE TABLE Job(uid INTEGER,job_id INTEGER AUTO_INCREMENT,
input varchar(500),status varchar(100),start_time time,finish_time time,
FOREIGN KEY(uid) REFERENCES User(uid) ON DELETE CASCADE,
PRIMARY KEY(job_id))ENGINE = InnoDB;
CREATE TABLE BLAST(database varchar(100),evalue varchar(100),job_id INTEGER,
FOREIGN KEY (job_id) REFERENCES Job(job_id))ENGINE = InnoDB;
有问题的表是BLAST表。我相信这是因为有一个job_id的外键,而我实际上并没有插入该值。我认为它只是做Job_id作业表中的job_id,但我猜我是错的。如果有人能向我解释该怎么办,我将不胜感激!
PHP代码
<select id="database" name="database">
<option selected="selected" disabled="disabled">Database</option>
<option value="Archaea">Archaea</option>
<option value="Bacteria">Bacteria</option>
</select>
<select id="evalue" name="evalue">
<option selected="selected" disabled="disabled"> evalue <option>
<option value="0.0001">0.0001</option>
<option value="0.001">0.001</option>
</select>
<select id="hits" name="hits">
<option selected="selected" disabled="disabled"> Hits</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
<input id="BlastSearch" type="text" name="BlastSearch" value='' />
<input type="submit" name="submit" value="submit" />
<button type="reset" value="Clear">Clear</button>
</form>
<?php
session_start();
require_once '../secure/database.php';
$mysqli = new mysqli($dbhost,$dbuser,$dbpass,$dbname);
}
//Insert the values into the database
if(isset($_POST['submit'])){
//declare variables to what the user defines them as
$db = $_POST['database'];
$evalue = $_POST['evalue'];
$sequence = $_POST['BlastSearch'];
//insert the values into the database
$mysqli->query("INSERT INTO `Job` (`uid`, `input`, `status`, `start_time`, `finish_time`) VALUES ('1', '" . $sequence . "', 'running' , NOW(), NOW())");
$mysqli->query("INSERT INTO `BLAST`(`database`, `evalue`, `job_id`) VALUES ('" . $db . "','" . $evalue . "', '1')") or die(mysqli_error($db));
}
?>
错误我收到:您的SQL语法错误;检查对应于你的MySQL服务器版本使用附近的'JOB_ID '正确的语法,database
,evalue
)VALUES( '56', '0.001', '真核生物')' 在1号线
任何错误信息? – panther
不是我做的PHP的search.php :( – jefferymicheals
我*敢肯定那*第二次查询将会导致错误。因为你有一个字符串文字作为列名,然后叫回来,打勾的标识符“1”在 – David