php - mysqli 为 INSERT 查询返回 true,未插入行

标签 php mysql insert mysqli

 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/

相关文章:

java - Tomcat 安全管理器 - c3p0 和 hibernate

mysql - 我可以使用多个字段作为 MySQL 中的 IGNORE 限定符来执行 INSERT IGNORE 吗?

list - 在已经有数字的位置插入一个数字,创建一个List

php - 使用 HTML <a href...> 访问表单输入

php - Laravel 反向插入数据透视表查询

mysql - SQL 查询以选择在同一列中具有不同值的子记录的父级

mysql - 创建 SQL 脚本以将数据插入表 (MySQL)

php - 无法通过 jquery 更改表单操作

php - 表 <td> 在长文本字符串上扩展的问题

MYSQL SELECT WHERE 子句 : How to include a column from another table?