Php 字段';用户名';不';没有默认值
我已经在网上搜索了这个查询,我可以在这个平台上找到一些,但它们对我来说并不是很好的解释。我有一个保存消息的表,该表还包含用户名列,用于使用登录会话跟踪messenger,但每次我尝试插入消息时,我收到的字段“username”都没有默认值。这是我的密码:Php 字段';用户名';不';没有默认值,php,mysql,Php,Mysql,我已经在网上搜索了这个查询,我可以在这个平台上找到一些,但它们对我来说并不是很好的解释。我有一个保存消息的表,该表还包含用户名列,用于使用登录会话跟踪messenger,但每次我尝试插入消息时,我收到的字段“username”都没有默认值。这是我的密码: <?php session_start(); if(!isset($_SESSION['user_name']) || (trim($_SESSION['user_name']) == '')) { header("lo
<?php
session_start();
if(!isset($_SESSION['user_name']) || (trim($_SESSION['user_name']) == '')) {
header("location: ../login");
exit();
}else{
$user= $_SESSION['user_name'];
if(!empty($_POST['message'])) {
include_once 'includes/config.php';
include_once 'includes/security.php';
include_once 'includes/smileys.php';
$message = clean(mysql_real_escape_string($_POST['message']));
$message = special_chars($message);
$time = time();
//getting image link
if(!empty($_POST['pic_url'])) {
$image = strip_tags($_POST['pic_url']);
} else {
$image = '';
}
$git = '';
//getting video link
if(!empty($_POST['y_link'])) {
$video = fix_url(strip_tags($_POST['y_link']));
} else {
$video = '';
}
//insert into wall table
$query = mysql_query("INSERT INTO posts SET
post_desc = '$message',
image_url = '$image',
vid_url = '$video',
username = '',
git = '$user',
post_date = '$time')") or die(mysql_error());
$ins_id = mysql_insert_id();
?>
警告:如果您只是在学习PHP,请不要使用该界面。它是如此可怕和危险,以至于在PHP7中被删除。替换类和指南类说明了最佳实践。您的用户数据不存在,存在,并且可以被利用。该表定义充满了问题。使用InnoDB。使用
utf8
编码。使用VARCHAR(255)
作为默认尺寸,除非需要更长的尺寸。使用INT(11)主键自动递增
。使用插入x(a,b,c)值(?,?)
而不是非标准的集合
@tadman,谢谢你的建议,但是你认为是什么导致了这样的问题?这里有太多的东西让人困惑,我不确定确切的问题是什么。关于堆栈溢出,需要记住的一件事是添加您得到的精确错误消息,而不仅仅是它的近似值,这不仅在传达错误方面非常有用,但在帮助其他有同样问题的人找到这个问题时,让人困惑的是,您显示的查询无法生成该错误:username='
。
CREATE TABLE `posts` (
`post_id` int(9) NOT NULL,
`post_desc` mediumtext NOT NULL,
`image_url` varchar(100) NOT NULL,
`vid_url` varchar(100) NOT NULL,
`username` varchar(100) NOT NULL,
`git` varchar(100) DEFAULT NULL,
`post_date` varchar(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;