INSERT INTO `jos1_content`
  (`title`, `introtext`, `fulltext`, `state`, `sectionid`, `catid`, `attribs`)
VALUES
  ($title, $introtext, $fulltext, 1, 1, $catid, 5)

查询由 php 脚本组成。变量的推导表明它们不是空的。
在 phpMyAdmin 的请求下显示错误:

最佳答案

您需要使用单引号将字符串指示给 SQL - 使用:

INSERT INTO `jos1_content`
  (`title`, `introtext`, `fulltext`, `state`, `sectionid`, `catid`, `attribs`)
VALUES
  ('". $title ."', '". $introtext ."', '". $fulltext ."', 1, 1, $catid, 5)

更安全的方法是使用:
$query = sprintf("INSERT INTO `jos1_content`
                    (`title`, `introtext`, `fulltext`, `state`, `sectionid`, `catid`, `attribs`)
                  VALUES
                   ('%s', '%s', '%s', 1, 1, %d, 5)",
        mysql_real_escape_string($title),
        mysql_real_escape_string($introtext),
        mysql_real_escape_string($fulltext),
        $catid);

引用:
  • SPRINTF
  • MYSQL_REAL_ESCAPE_STRING
  • 关于sql - 插入 - 表中未记录的字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4419218/

    10-16 17:15