$id = DB::table('utilisateur')
->select('idUtlstr')
->where('email','=',$request ->input("email"))
->get();
DB::table('client')->insert(
[
'idClient' => $id,
'nbrSignl' => 0,
'numPermis' => 0,
'quest1' => 'vide',
'quest2' => 'vide',
'quest3'=> 'vide',
'datePermis' => '2000-01-01',
'numCompte' => 0 ,
'blocage' => 'non'
]
);
SQLSTATE [HY000]:常规错误:1366不正确的整数值:' [{" idUtlstr":25}]'对于列' idClient'在第1行(SQL:插入
client
(idClient
,nbrSignl
,numPermis
,quest1
,quest2
,quest3
,datePermis
,numCompte
,blocage
)值([{" idUtlstr":25}],0,0,vide,vide,vide,2000-01-01 ,0,非))
答案 0 :(得分:2)
这是因为$id
在数据库请求之后不是整数。您的查询返回一个元素集合的对象,您需要正确地获取它...
执行var_dump($id)
,您会看到它返回stdClass
。
查询后使用此内容:
$my_id = $id{0}->idUtlstr
在第二个查询中使用该变量。
答案 1 :(得分:1)
试试吧
$utilisateur = DB::table('utilisateur')
->select('idUtlstr')
->where('email',$request->input("email"))
->first();
if (!empty($utilisateur)) {
$id = $utilisateur->idUtlstr;
$data = [
'idClient' => $id,
'nbrSignl' => 0,
'numPermis' => 0,
'quest1' => 'vide',
'quest2' => 'vide',
'quest3'=> 'vide',
'datePermis' => '2000-01-01',
'numCompte' => 0 ,
'blocage' => 'non'
];
DB::table('client')->insert($data);
}
答案 2 :(得分:0)
使用这个,我希望它能起作用。
$id = DB::table('utilisateur')
->select('idUtlstr')
->where('email','=',$request ->input("email"))
->first();
DB::table('client')->insert(
[
'idClient' => $id->idUtlstr,
'nbrSignl' => 0,
'numPermis' => 0,
'quest1' => 'vide',
'quest2' => 'vide',
'quest3'=> 'vide',
'datePermis' => '2000-01-01',
'numCompte' => 0 ,
'blocage' => 'non'
]
);
答案 3 :(得分:0)
这是因为$id
是整数,并且查询返回了对象。例如,在您的数据库中,$id
的值等于2,但是查询返回的值为'{"id":2}'
而不是2
。
您应该做的是添加第二个变量以获取ID:
$myid = $id->id
这等于$myid = 2
。然后,您可以使用$myid
进行第二次查询,一切都会正常进行。
根据您的代码,这应该可以工作:
$id = DB::table('utilisateur')
->select('idUtlstr')
->where('email','=',$request ->input("email"))
->get();
$myid = $id->id
DB::table('client')->insert(
[
'idClient' => $myid,
'nbrSignl' => 0,
'numPermis' => 0,
'quest1' => 'vide',
'quest2' => 'vide',
'quest3'=> 'vide',
'datePermis' => '2000-01-01',
'numCompte' => 0 ,
'blocage' => 'non'
]
);