mysql sql field list_Mysql语句 报错 "Unknown column ' ' in 'field list'"

Unknown column ' ' in 'field list,主要意思就是这个字段不存在,我查了查网上的信息,都是指数据表字段名前面有空格,或者一些别的看不见的符号,我仔细检查了字段名,发现字段名没有问题。最后发现我的问题主要出现在字段类型和添加的数据类型不一致

错误示范,username字段是varchar类型,而变量解析之后由于不带单引号,嗯,不知道变成什么鬼了,在PHP里面一般仍然可以当成字符串用,但是执行sql语句就不行了。

public function insert($username, $password)

{

$this->sql = "insert into $this->table (username, password) values ($username, $password)";

return $this;

}

正确示范,变量$username,执行sql语句还必须解析完了之后再主动跟他加一个单引号。

public function insert($username, $password)

{

// 拼装sql语句,重点在于--->'".$username."'

$this->sql = "insert into $this->table (username, password) values ('".$username."', $password)";

}

下面跟问题基本没有关系了

/**

* 对Mysqli的类进行二次封装

*/

class MysqliClass extends mysqli

{

public $table; //用来保存操作的表名称

public $sql; //保存要执行的sql语句

private $action = 'other'; //当前sql执行的操作是什么,主要查询需要返回结果集

// 封装Mysqli的构造函数

public function __construct($dbname)

{

// 账号密码请仔细填写

parent::__construct('localhost', 'root', 'root', $dbname);

// 设置连接数据库的编码

$this->set_charset('utf8');

}

// 查询数据

public function select()

{

$this->action = 'select';

$this->sql = "select * from $this->table";

return $this;

}

// 封装一个添加数据方法

public function insert($username, $password)

{

// 告知类将要执行修改操作

$this->action = 'other';

// 拼装sql语句,重点在于--->'".$username."'

$this->sql = "insert into $this->table (username, password) values ('".$username."', $password)";

return $this;

}

// 删除数据

public function delete($id)

{

$this->action = 'other';

$this->sql = "delete from $this->table where id = $id";

return $this;

}

// 修改数据

public function update($id, $username, $password)

{

$this->action = 'other';

$this->sql = "update $this->table set username='".$username."', password=$password where id = $id";

return $this;

}

// 之所以名称不用query是为了仍然可以使用mysqli类的query方法执行sql

public function query2()

{

// 执行语句

$result = $this->query($this->sql);

// 判断用户是什么操作

if ($this->action == 'select') {

$data = [];

// 解析查询数据

foreach ($result as $key => $value) {

$two_data = [];

foreach ($value as $two_key => $two_value) {

$two_data[$two_key] = $two_value;

}

$data[$key] = $two_data;

}

return $data;

} else {

if($result) {

return $result;

} else {

// 输出语句错误信息

echo $this->error;

return false;

}

}

}

}

// 建立与数据库的连接

$db = new MysqliClass('studymysqli');

// 设置要操作的表

$db->table = 'mysqli_class';

// 1. 查询数据

// $result = $db->select()->query2();

// var_dump($result);

// 2. 添加数据,用时间戳替代密码,用来判断是否成功添加

// $result = $db->insert('测试姓名', time())->query2();

// var_dump($result);

// 3. 修改数据,

// 参数解释,唯一标识ID, 用户名称username, 用户密码password

// $result = $db->update(2, '修改用户名称', time())->query2();

// var_dump($result);

// 4. 删除数据

// $result = $db->delete(6)->query2();

// var_dump($result);

$db->close();

?>

"Unknown column 'set_num' in 'field list'"的意思是在字段列表中找不到名为'set_num'的字段。这个错误通常发生在SQL查询语句中,表示查询的表中不存在该字段。 根据引用和中提到的解决方法,可以先检查一下字段名是否正确,确保没有空格或其他看不见的符号。另外,还需要注意字段类型和添加的数据类型是否一致。如果仍然无法解决问题,可以进一步检查SQL查询语句中是否正确引用了表名、字段名和值。 根据引用中的示例,如果你的查询语句中引用了'set_num'字段,但表中并没有这个字段,就会出现该错误。请确保你的查询语句中引用的字段在表中是存在的,并且名字没有拼写错误或其他问题。 如果上述解决方法都没有解决问题,可能需要进一步检查数据库结构和数据表定义,以确保表中存在该字段。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Mysql语句 报错 "Unknown column ' ' in 'field list'](https://blog.csdn.net/weixin_31014025/article/details/113275478)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Unknown column ” in ‘field list’解决方案](https://download.csdn.net/download/weixin_38720461/14832658)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值