if ($word != '' && $text != '') {
$result = $conn->query("SELECT * FROM variables WHERE `word` = '$word'");
if ($source = $result->fetch_assoc()) {
$conn->query("UPDATE variables SET `text` = '$text' WHERE `word` = '$word'");
echo 0;
} else {
if ($result = $conn->query("INSERT INTO variables (`word`, `text`) VALUES ('$word', '$text')"))
echo 1;
}
}
上面是 INSERT 代码(和更新)UPDATE 代码工作正常,但是当调用 INSERT 查询时,查询返回 true
但是当我检查数据时,它没有被插入.
感谢任何帮助,提前致谢。
编辑:
变量表结构:
`word` varchar(100) NOT NULL, //also PRIMARY KEY
`text` text NOT NULL
最佳答案
您在 if
条件中有一个 =
。
也许你想要:
if ($result->num_rows){ // see if there are any rows
$conn->query("UPDATE variables SET `text` = '$text' WHERE `word` = '$word'");
echo 0;
} else {
$conn->query("INSERT INTO variables (`word`, `text`) VALUES ('$word', '$text')");
echo 1;
}
测试:
$conn = new mysqli('localhost', 'root', '', 'test');
$word = 'word1';
$text = 'text1';
$result = $conn->query("SELECT * FROM variables WHERE `word` = '$word'");
if ($result->num_rows){
$conn->query("UPDATE variables SET `text` = '$text' WHERE `word` = '$word'");
echo 0;
} else {
$conn->query("INSERT INTO variables (`word`, `text`) VALUES ('$word', '$text')");
echo 1;
}
关于php - mysqli 为 INSERT 查询返回 true,未插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12744953/