SQL Not null 和 php = 或 false
Posted
技术标签:
【中文标题】SQL Not null 和 php = 或 false【英文标题】:SQL Not null and php = or false 【发布时间】:2013-01-03 15:22:48 【问题描述】:我有一个将描述和缩略图插入表格的循环,但并非循环中的所有项目都有描述和缩略图。我不认为这是一个问题,但是 sql 不会插入它,除非它们有值。我认为这可能是由于 not null 的原因,所以我尝试将“null”更改为“yes”。
我设置它打印出执行的查询和mysql错误:
查询:INSERT INTO Experiments (title, dir, desc, thumbnail) VALUES('3dbox', '3dbox', '', '')
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'desc, thumbnail) VALUES('3dbox', '3dbox', '', '')' 附近使用正确的语法
我也试过这个:
$d = @file_get_contents("/experiments/$sites[$i]/desc.txt") or false;
但这也不起作用,正如您在查询中看到的那样。
【问题讨论】:
字段是否设置为NOT NULL? DESC是mysql中的保留字,你应该改成别的 不,i.imgur.com/nzXbf.png 他们是空的 【参考方案1】:desc
是Mysql中的保留字。因此,错误。您需要将列名更改为其他名称,或者使用这样的反引号访问它,
INSERT INTO experiments (title, dir, `desc`, thumbnail) VALUES('3dbox', '3dbox', '', '')
这是保留字的manual。
【讨论】:
它告诉我必须等待选择答案 :)【参考方案2】:desc
在mysql中保留,必须标识为:
INSERT INTO experiments (title, dir, `desc`, thumbnail) VALUES('3dbox', '3dbox', '', '')
【讨论】:
【参考方案3】:您不能使用“desc”作为列名,因为它是一个保留字:http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html,您需要对其进行转义:尝试将您的查询更改为:
INSERT INTO experiments (title, dir, `desc`, thumbnail) VALUES('3dbox', '3dbox', '', '');
【讨论】:
以上是关于SQL Not null 和 php = 或 false的主要内容,如果未能解决你的问题,请参考以下文章
我如何在 php 中从 mysql 查询结果组按日期给出符号(如更改颜色或 fa-up/fa-down)