Php 无法将数据插入MySQL

Php 无法将数据插入MySQL,php,mysql,Php,Mysql,我是MySql新手,所以请原谅我犯的任何愚蠢错误,但基本上我是在写博客,我有一个表,它有4列:post_id、post_text、post_user和post_date。我无法让我的代码将数据插入MySql,如果您能看一看并告诉我哪里出了问题,我将不胜感激: <?php $host = "localhost"; $user="user"; $password="*********"; $db="myData"; $user_id = $_SESSION['user_id']; in

我是MySql新手,所以请原谅我犯的任何愚蠢错误,但基本上我是在写博客,我有一个表,它有4列:post_id、post_text、post_user和post_date。我无法让我的代码将数据插入MySql,如果您能看一看并告诉我哪里出了问题,我将不胜感激:

 <?php


$host = "localhost";
$user="user";
$password="*********";
$db="myData";
$user_id = $_SESSION['user_id'];

ini_set('display_errors', 1); error_reporting(-1);


//can't find the user_id 
$con=mysql_connect($host,$user,$password,"myData","posts");
if( $con === FALSE ) {  
    die('mysql connection error: '.mysql_error()); 
}


$post_text = mysqli_real_escape_string($con,$_POST["blog_entrance"]);
$post_date = mysqli_real_escape_string($con,date("y.m.d"));


$query = "INSERT INTO posts (post_text, post_user) VALUES ('$post_text','$user_id','$post_date')";
mysql_query($query,$con) or die('Can\'t post data atm: ' . mysql_error());


mysql_close($host,$user,$password,"myData","posts");
header('Location: ../index.php');


?>
了解函数:

您必须使用:

$con = mysql_connect($host,$user,$password);

无论如何,
mysql.*
函数是旧的、可怕的、不推荐使用的。使用或

我想我应该发布我的最终代码,以便将来的用户可以查看它:

$con= new mysqli($host,$user,$password,$db);
if ($con->connect_errno) {
    die("Failed to connect to MySQL: (" . $con->connect_errno . ") " . $con->connect_error);
}


$post_text = mysqli_real_escape_string($con,$_POST["blog_entrance"]);
$post_date = mysqli_real_escape_string($con,date("y.m.d"));


if (!$con->query("INSERT INTO posts(post_text, post_user, post_date) VALUES ('$post_text',$user_id','$post_date')")) {
    die("Multi-INSERT failed: (" . $con->errno . ") " . $con->error);
}

你把
mysql
mysqli
语句混在一起了-它们不兼容。至于使用哪一个:
mysqli
——另一个已弃用,不受支持,不久将从PHP中删除。Google“mysqli教程”-有一百万个。php的一个更好的特性是它的所有功能,包括详细描述,并给出了许多示例。使用它。顺便说一句,在同一页上,他们解释了为什么不应该再使用mysql,以及为什么。这个问题似乎离题了,因为解决这个问题所需的一切都可以在
会话_start()中找到是否已加载?10次中有9次OP会回答“是的,它是。”-它没有显示,但它在那里。将错误报告添加到文件顶部
错误报告(E_ALL);ini设置(“显示错误”,1)不要使用mysql_*函数。他们被弃用了。切换到PDO或mysqli。@Robbert当你添加这个时,我正在编辑并添加这个:)