我无法在mysql中插入单词


I cannot insert a word to mysql

if(isset($_POST['zodis'])) { 
strpos($_POST['zodis'], ' ');
if($pos > 0) {
    print '<h2> Only 1 word. </h2>';
} else {
        $query = "INSERT INTO `zodziai` (`id` ,`zodis` ,`date`)VALUES (NULL , '"$_POST['zodis']"',CURRENT_TIMESTAMP);";
        mysql_query($query) or die(mysql_error());
    }
}       

我哪里犯了错误?我是PHP的新手

它显示

解析错误:语法错误、意外T_VARIABLE C:'wamp'www'php_mysql.php 19 号线

你忘了.

    $query = "INSERT INTO `zodziai` (`id` ,`zodis` ,`date`)VALUES (NULL , '" . $_POST['zodis'] . "',CURRENT_TIMESTAMP);";
$query = "INSERT INTO zodziai (id,zodis,date)VALUES (NULL, '".$_POST['zodis']."',".time().");";

您的 ID 字段不是自动加密的?您的日期字段是什么类型的字段?

如果混合字符串和变量,则应使用 "." 将它们连接起来:

。值 (NULL , '".$_POST['ZODIS']."',CURRENT_TIMESTAMP)...

请注意 $_POST 变量前后的点 (.)。

这就是我快速浏览所看到的,也许还有更多。

您没有初始化$pos 。试试这个:

$pos = strpos($_POST['zodis'], ' ');

您还忘记了查询中的串联运算符 ( . )。

$query = "INSERT INTO `zodziai` (`id` ,`zodis` ,`date`)VALUES (NULL , '" . $_POST['zodis'] . "',CURRENT_TIMESTAMP);";

还要避免使用mysql_函数,PHP 不鼓励使用mysql_函数,mysql_函数很快就会被弃用,而是使用 mysqli 类或 PDO。

另一个建议,而不是在查询中发送CURRENT_TIMESTAMP,使用以下约束创建表字段

`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

然后在查询中传递NULL,这会自动将相应行中的date字段设置为 CURRENT_TIMESTAMP