gpt4 book ai didi

php - 如果表已经包含数据,我想搜索数据库,如果没有则插入它

转载 作者:行者123 更新时间:2023-11-29 00:57:19 25 4
gpt4 key购买 nike

我正在使用 MySQLi 准备好的语句来执行此操作,因为数据来自其他来源。这是我的代码,它不起作用。我不明白为什么我需要执行 $stmt->store_result() 才能运行 num_rows()。因为如果我不运行 store_result,我会得到一个错误:

Fatal error: Call to a member function bind_param() on a non-object

foreach($this->contents as $key => $dealer) {
foreach($dealer as $deals) {
$stmt = $mysqli->prepare("SELECT id, name FROM company WHERE name = ? LIMIT 1");
$stmt->bind_param("s", $deals['company']);
$stmt->execute();
$stmt->store_result();

if($stmt->num_rows() > 0) {
$companyid = // I don't know how to get the id from the query
} else {
$stmt->prepare("INSERT INTO company (name) VALUES (?)");
$stmt->bind_param("s", $deals['company']);
$stmt->execute();
}
$stmt->close();
}
}

基本上,我希望代码检查公司表中是否已经存在公司,然后在检查之后,如果公司存在,那么我需要记录公司的 ID,以便我可以在其他查​​询中使用它,但是如果它不存在,那么我需要记录公司名称然后获取 ID,以便我可以在其他查​​询中使用它。

最佳答案

要获取您的$companyId,您需要执行$stmt->bind_result()$stmt->fetch()Docs on fetch()

if($stmt->num_rows() > 0) {
// To get your companyId
$stmt->bind_result($companyId);
$stmt->fetch()

// Now $companyId has the value from id in the database
} else {
// Do your insert statement, etc...
}

关于php - 如果表已经包含数据,我想搜索数据库,如果没有则插入它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5392142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com