用PHP访问SQL数据库

用PHP访问SQL数据库,php,mysql,Php,Mysql,我有一个简单的消息和用户数据库。消息包含id、消息和创建日期。我试图在用户点击“提交”消息后将其放入数据库,但我遇到了一些问题,无论谁输入,每次id都为0,创建日期为0-0-0。 我正在处理的两个代码文件是这样的 <?php session_start(); include "validate.php"; include "src/header.php"; include "src/mainmenu.php"; ?> <form met

我有一个简单的消息和用户数据库。消息包含id、消息和创建日期。我试图在用户点击“提交”消息后将其放入数据库,但我遇到了一些问题,无论谁输入,每次id都为0,创建日期为0-0-0。 我正在处理的两个代码文件是这样的

<?php
    session_start();

    include "validate.php";
    include "src/header.php";
    include "src/mainmenu.php";
?>
    <form method="post" action="message_action.php">
    <fieldset>
    <legend>Message Area</legend>
    <p>
        <label for="message">Message:</label> <textarea name="message" id="message" rows="5" cols="50"></textarea>

    <p class="center"><input value="Send" type="submit" /></p>
    </fieldset>
    </form>

    <p><a href="exit.php">Exit</a></p>
<?php   
    include "src/footer.php";
?>

您没有表单元素
id\u user
创建日期
,因此
$\u POST['id\u user']
$\u POST['date\u of\u creation']
不存在,因此它们默认为
0
。您需要将它们添加到表单中,或者可以在php->
$id\u user=$\u会话['userid']中设置它们$创建日期=日期('Y-m-d')
能否提供有关应用程序工作方式的更多信息?数据库模式等?生成的
id\u user
值在哪里?当然,我添加了数据库。而id_用户我不确定它应该如何与此人关联,因为此人此时已登录。@Sean。创建日期确定了它,但我的用户数据库中没有要关联的用户ID。
$\u会话['userid']
只是一个猜测,就像在您提供任何信息之前一样(第一次编辑之前)。您是否在会话中存储登录的用户数据?如果是这样,它可能是
$\u SESSION['id']
。但是基本上你会得到
`users`.`id`
<?php
    session_start();
    include 'db.php';

    $id_user = $_SESSION['id']; 
    $message = $_POST['message'];

    $sql = "INSERT INTO messages (id_user, message) VALUES ('$id_user','$message');";
    $result = mysqli_query($link, $sql);
    mysqli_close($link);

    if ($result == false) {
        include "src/header.php";
        include "src/mainmenu.php";
        echo '<p>Error: cannot execute query</p>';
        echo '<p><a href="register.php">Try again</a></p>';
        include "src/footer.php";
        exit;
    }
    else {
        header('Location: private.php');
    }
    mysqli_close($link);
?>
-- phpMyAdmin SQL Dump
-- version 3.4.5
-- http://www.phpmyadmin.net
--
-- Servidor: localhost:33306
-- Tiempo de generación: 31-05-2012 a las 09:56:35
-- Versión del servidor: 5.5.16
-- Versión de PHP: 5.3.8

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de datos: `minifacebook`
--
CREATE DATABASE `minifacebook2` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `minifacebook2`;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `messages`
--

CREATE TABLE IF NOT EXISTS `messages` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_user` int(11) NOT NULL,
  `message` text NOT NULL,
  `date_of_creation` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `users`
--

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(200) NOT NULL,
  `info` text NOT NULL,
  `date_of_birth` date NOT NULL,
  `place_of_birth` varchar(20) NOT NULL,
  `date_of_reg` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `email` varchar(200) NOT NULL,
  `password` varchar(32) NOT NULL,
  `nationality` varchar(20) NOT NULL,
  `friend` int(3),
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;