PDO MySQL prepare->执行INSERT INTO不出现在数据库

时间:2015-11-16 10:57:37

标签: php mysql pdo

我正在编写一个程序来监视我出于安全原因拥有的一堆计算机。我试图使用以下代码将用户数据存储在数据库中:

$con->prepare("INSERT INTO `myComputers` (`hwid`, `ip`, `pcname`, `username`, `os`, `country`, `first`) VALUES (:hwid, :ip, :pcname, :username, :os, :country, :first")->execute(
      array(
        ':hwid'        => $data_array['hwid'],
        ':ip'          => $data_array['ip'],
        ':pcname'      => $data_array['pcname'],
        ':username'    => $data_array['username'],
        ':os'          => $data_array['os'],
        ':country'     => $data_array['country'],
        ':first'       => $data_array['first']
      )
    );

我没有收到任何错误,但是当我查看我的数据库时,没有插入任何数据。我已经检查过$data_array中的每个项目实际上都设置为某个项目。这里还有我的MySQL数据库构造查询:

CREATE TABLE IF NOT EXISTS myComputers(
    hwid VARCHAR(64) NOT NULL PRIMARY KEY,
    ip VARCHAR(45) NOT NULL,
    pcname VARCHAR(50) NOT NULL,
    username VARCHAR(50) NOT NULL,
    os VARCHAR(150) NOT NULL,
    country CHAR(2) NOT NULL,
    first int(11) NOT NULL
  ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

我已经被困在这几个小时,不知道是什么导致了这个问题。任何帮助将不胜感激。

以下是我正在解析的一些测试数据(我已经更改了我的IP地址):

blahblah
123.12.123.123
PotatoPC
MyPotato
Windows
AU
1447671823

1 个答案:

答案 0 :(得分:1)

:first")关闭引号和括号问题:first)")

所以整个陈述都是

$con->prepare("INSERT INTO `myComputers` (`hwid`, `ip`, `pcname`, `username`, `os`, `country`, `first`) VALUES (:hwid, :ip, :pcname, :username, :os, :country, :first)")->execute(
 array(
        ':hwid'        => $data_array['hwid'],
        ':ip'          => $data_array['ip'],
        ':pcname'      => $data_array['pcname'],
        ':username'    => $data_array['username'],
        ':os'          => $data_array['os'],
        ':country'     => $data_array['country'],
        ':first'       => $data_array['first']
      )
    );