MySQL查询在php中不起作用,直接运行时可以正常工作

时间:2014-07-19 21:30:37

标签: php mysql sql

我对MySQL和PHP有一个非常奇怪的问题。

我有一个函数,下面的查询:

Global $Linker;

$query = "INSERT INTO ".$user_type." (id) VALUES (?)";

if($stmt = mysqli_prepare($Linker->DataBase,$query)) {

            mysqli_stmt_bind_param($stmt,"i",$max_id);
            mysqli_stmt_execute($stmt);     
            mysqli_stmt_close($stmt); 

} printf("Error: %s.\n", mysqli_stmt_error($stmt));

其中

$Linker is the variable that holds the database connection

$user_type is the table I want to insert in the database

我收到以下错误

  

错误:无法添加或更新子行:外键约束失败(std10179db/Students,CONSTRAINT fk_Students_Users1 FOREIGN KEY(id)REFERENCES mydb。{{1 } {({1}})ON UPETE NO ACTION ON UPDATE NO ACTION)。

问题是,当我通过服务器中的命令行直接在MySQL中运行相同的查询时,它按预期工作,没有错误。

我找到了一个使用的工作:

Users

在我的PHP函数查询之前,另一种解决方法是更改​​我的数据库架构 但我想知道为什么会这样?

我甚至试图在没有参数的情况下执行查询:

Table_ID

与我直接放入服务器的那个完全相同但没有成功。

有什么想法吗?

编辑:

表USERS

$query= "SET FOREIGN_KEY_CHECKS=0";
$stmt = mysqli_prepare($Linker->DataBase,$query);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt); 

和表学生

$query = "INSERT INTO Students (id) VALUES (3)";

0 个答案:

没有答案