首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQLi insert insert错误

MySQLi insert insert错误
EN

Stack Overflow用户
提问于 2012-06-05 00:37:00
回答 3查看 4K关注 0票数 1

嗨,我在mysql数据库中插入了很多东西。

但是现在我在prepare语句中得到一个错误。我看到数据库准备错误。我做错了什么?

这是我的代码:

代码语言:javascript
复制
$sql = "INSERT INTO
                Contact (IP,To,Name,Email,Subject,Text)
            VALUES 
                ( ?, ?, ?, ?, ?, ? )
           ";

    if (!$stmt = $db->prepare($sql)) {
        echo 'Database prepare error';
        exit;
    }

    $stmt->bind_param('ssssss', $ip_contact, $to_contact, $name_contact, $email_contact, $subject_contact, $text_contact);

    if (!$stmt->execute()) {
        echo 'Database execute error';
        exit;
    }

    $stmt->close();

我的SQL表如下所示:

代码语言:javascript
复制
Contact:
- ID    int(11)    auto_increment    primary key
- IP    varchar(15)
- To    varchar(5)
- Name    varchar(20)
- Email    varchar(20)
- Subject    varchar(20)
- Text    varchar(600)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-05 00:40:55

例如,to是一个reserved word in mysql,您应该将您的代码更改为:

代码语言:javascript
复制
$sql = "INSERT INTO
            `Contact` (`IP`,`To`,`Name`,`Email`,`Subject`,`Text`)
        VALUES 
            ( ?, ?, ?, ?, ?, ? )
       ";
票数 3
EN

Stack Overflow用户

发布于 2012-06-05 00:48:38

首先,To在mysql中是一个保留字,所以你需要按照here的定义使用引号。

其次,在调用execute方法之前,需要设置变量的值。

代码语言:javascript
复制
$sql = "INSERT INTO
            Contact (IP,'To',Name,Email,Subject,Text)
        VALUES 
            ( ?, ?, ?, ?, ?, ? )
       ";

if (!$stmt = $db->prepare($sql)) {
    echo 'Database prepare error';
    exit;
}

$stmt->bind_param('ssssss', $ip_contact, $to_contact, $name_contact, $email_contact, $subject_contact, $text_contact);

$ip_contact = '123456';
$to_contact = '123456';
$name_contact = '12345';
$email_contact = '1111';
$subject_contact = 'test';
$text_contact = 'test';


if (!$stmt->execute()) {
    echo 'Database execute error';
    exit;
}

$stmt->close();

现在检查一下,它现在应该可以工作了。

票数 1
EN

Stack Overflow用户

发布于 2012-06-05 00:43:45

To是MySQL中的reserved word。您必须在其两边添加反引号:

代码语言:javascript
复制
Contact (IP,`To`,Name,Email
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10884820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档