Php html表单到mysql数据库

Php html表单到mysql数据库,php,html,mysql,Php,Html,Mysql,嗨,我必须写一个博客,我在网页上显示我的条目时有点问题 <?xml version = "1.0" encoding = "utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns = "http://www.w3.org/1999/xhtml"> <

嗨,我必须写一个博客,我在网页上显示我的条目时有点问题

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml"> 
<head> <title> Add entry </title> 
</head> 
<body>

<form action = "text1.php" method = "post">

Title: <input type = "text" name = "title"><br>
Body: 
<textarea rows="10" cols="100" name="textblock"></textarea>
<input type = "submit" value = "Add Entry" />
</body> 
</html>

添加条目
标题:
正文:
还有我的php代码

<?php
$title = $_POST['title'];
$textblock = $_POST['textblock'];
$host   =   "xxxxxx"  ;
$user   =   "xxx"  ;
$pass   =   "xxx"  ;
$db   =   "xxx"  ;


// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db")or die(mysql_error());

$query = "INSERT INTO yourMySQLTable (title, textblock) VALUES ('$title','$textblock')";

mysql_query($query) or die('Error, insert query failed');

?>

您应该使用PDO进行数据库交互,mysql_*函数已取消加密且不安全。PDO将清理变量以防止SQL注入攻击

变量中附加了一个“here”:
here$textblock=$\u POST['textblock'

还可以尝试以下操作:
$query=“插入mysqltable(title,textblock)值(““$title.”,“$textblock.”)

使用以下命令:

$host   =   "xxxxxx"  ;
$user   =   "xxx"  ;
$pass   =   "xxx"  ;
$db   =   "xxx"  ;


// Connect to server and select database.
mysql_connect($host, $username, $password)or die(mysql_error());
mysql_select_db($db)or die(mysql_error());

$title = mysql_real_escape_string($_POST['title']);
$textblock = mysql_real_escape_string($_POST['textblock']);

$query = "INSERT INTO tableName (title, textblock) VALUES ('$title','$textblock')";

mysql_query($query) or die(mysql_error());
要显示它们,请执行以下操作:

$query = "SELECT * FROM tableName";
$res = mysql_query($query);
while($row = mysql_fetch_assoc($res)) {
    echo $row['title'] . ' - ' . $row['textblock'] . '<br />';
}
$query=“从tableName中选择*”;
$res=mysql\u query($query);
while($row=mysql\u fetch\u assoc($res)){
echo$row['title'].-.$row['textblock'].
; }
  • 请注意,我在使用变量时没有使用“”,这是不需要的
  • 请注意我是如何使用mysql\u real\u escape\u字符串的,这将使插入数据库变得安全
  • 将所有错误消息替换为mysql_error(),以显示实际错误(如果有)
  • 确保将tableName更新为表的名称

  • 由于已经给出了其他答案以帮助您插入,因此我不会在本答案中重复

    Edit:下面使用
    mysqli.*
    函数添加了一个插入方法

    我的由你的第二部分组成:

    我想在另一个网页上显示每个条目,包括标题和文本块

    如果希望显示DB表中的数据,则需要使用循环

    这是一个基于
    mysqli.*
    的版本和一个非常基本的方法

    <?php
    
    // $db = new mysqli("host", "user", "pw", "db");
    
    // CONNECT TO THE DATABASE
    
    $DB_HOST = "xxx";
    $DB_NAME = "xxx";
    $DB_PASS = "xxx";
    $DB_USER = "xxx";
    
    $db = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
    if($db->connect_errno > 0) {
      die('Connection failed [' . $db->connect_error . ']');
    }
    
    $result = $db->query("SELECT * FROM `yourMySQLTable`");
    
     while($row = $result->fetch_assoc()) {
    
       echo "<b>Title:</b> " . $row['title'] . " <b>Text:</b> " . $row['textblock'] . "<br>";
    
     }
    
    
    mysqli_close($db);
    
    ?>
    

    旁注:您当前的代码是开放的。使用函数。(我建议您使用和搭配,或)

    mysql.*
    函数已弃用,将从未来的PHP版本中删除

    以下是一些关于准备好的语句的教程,您可以学习并尝试:

    以下是一些关于PDO的教程:

    脚注:

    您不需要额外的标签:

    <?xml version = "1.0" encoding = "utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns = "http://www.w3.org/1999/xhtml"> 
    
    
    
    将其更改为以下内容即可:

    <!DOCTYPE html>
    
    
    
    讲师指示我们使用mysql:)虽然这可能是一个很好的观点,但它实际上并没有提供问题的答案。您在上面发布的代码中似乎有一些拼写错误。例如,在$textblock旁边有一个单词“here”。$host前面还有“在此处输入代码”。如果您坚持使用mysql_*函数(您应该通过使用PDO向您的指导老师炫耀),那么使用mysql_real_escape_字符串($title)对变量进行转义,这样就可以安全地插入数据库。如果你能稍微整理一下你的代码,并为我们提供无语法的PHP,我很乐意提供帮助。我不想听起来像个傻瓜,但如果你的导师说要使用mysql_*函数,他对PHP的知识已经过时了。PDO只是在编程中与MySQL数据库交互的一种方式。@LeeSalminen我想他指的是MySQL,而不是MySQL函数。使用mysql方法的任何一种方法都不是不安全的,但已被弃用。如果没有正确使用,PDO/MySQLI和mysql方法一样不安全。这是您实际代码的一部分吗<代码>此处$textblock=$\u POST['textblock'];在此处输入代码$host=“xxxxxx”
    这是您实际的表名吗
    yourMySQLTable
    ?本论坛没有新成员,不小心将此处的输入代码部分留在了,现在已将其修复。your
    yourMySQLTable
    是您的表名,并且
    title、textblock
    列都存在?另外,您正在使用哪个版本的PHP,您是在托管站点上还是在自己的计算机上执行此操作?参考我给你的答案。这应该会让您开始使用
    mysqli.*
    函数,以及一些编写良好的教程站点。让我知道进展如何。那么我如何在网页上显示所有表单条目呢。这些是博客条目,我想把它们全部显示在网页上?请阅读“显示它们”部分。我的2美分:上面的代码和使用mysql_*函数一样糟糕。如果您打算将mysql_*函数留给mysqli/PDO,请正确操作(使用准备好的语句)。@AzizSaleh非常感谢并注意您的2美分。然而,我建议你输入你自己的答案,如果你觉得这和使用
    mysql\u*
    函数一样糟糕,那么无论谁+1使用
    mysql\u*
    函数,你都应该有另一个+1。这是一个使用
    mysqli\u real\u escape\u string()
    的基本方法,并且添加了足够的附加信息。我不是按小时或按工作来帮助别人的。现在,如果这还不够的话,那我就回去当摩托车技工;-)@添加AzizSaleh;如果OP不了解如何使用基本SQL进行简单的插入,我们怎么能期望他/她了解准备好的语句和PDO是如何工作的?这就像把一个婴儿扔向鲨鱼,期望它能终生游泳,并学会如何与鲨鱼搏斗。对函数如何工作的基本理解最终将导致更高的学习。SQL就是SQL,之后添加的任何内容都需要特别注意。你知道,我也知道,但这并不意味着OP会在几秒钟内知道。想想看;-)@我真傻,你回答了。现在,这不是锅在说锅是黑的吗。顺便说一下,这是一个表达,意思是“言行一致”。下次当你告诉某人使用预先准备好的语句而不是
    mysql\u*
    ,这不是我用来提供你信息的,那么就不要仅仅用它来给出答案
    mysql.*
    我对使用mysql.*功能的人完全没有意见,如果操作正确,它与PDO/MySQLi一样安全。对我来说,上面的代码与使用mysql_*功能几乎相同,因为它没有添加
    <!DOCTYPE html>