0

我对 CodeIgniter 和 Mysql 有疑问。我收到一个非常简单的查询错误:

$o = "INSERT INTO usuarios (user, password) VALUES ('deesggsd', 'dsggd')";
$query = $this->db->query($o);
$this->db->query($query);

产生:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1

1

Filename: C:\wamp\www\newWeb\system\database\DB_driver.php

Line Number: 330

但是查询实际上是执行的;该行出现在数据库中。我做错了什么?

如果我在 phpmyadmin 上执行相同的查询,一切正常。

谢谢!!!

4

2 回答 2

3

您正在做的$query = $this->db->query($o);是执行查询并将结果存储到$query变量中。所以你已经运行了INSERT一次,这就是它正确存储到数据库的原因。

现在,当您尝试运行时,$this->db->query($query);您基本上是在尝试使用结果 (TRUE) 作为查询字符串来运行 mysql 过程。这是它引发错误的地方。说得通?

尝试这样做:

$this->db->insert('usuarios', array(
    'user'     => 'deesggsd',
    'password' => 'dsggd'
);

我建议研究Active Record以及 PHP 和 mysql 之间的交互一般是如何工作的。无意冒犯,但这是初学者级别的错误。

于 2013-05-23T19:55:11.800 回答
0

你应该使用 activer 记录它的样本和简单,

这将解决你的问题

$values = array('user'=>'deesggsd', 'password'=> 'dsggd');  
$this->db->insert('usuarios',$values)   

http://ellislab.com/codeigniter/user-guide/database/active_record.html

于 2013-05-25T17:40:35.213 回答