PHP提交表单到数据库的乱码问题解决方法

可能你会遇到这种情况: 页面是用的UTF-8编码,数据库和服务器也没问题,

但是提交表单上传到数据库的中文偏偏就是乱码,或者数据库是好的,但是从数据库获取的中文数据是乱码。

这样:

或者这样:

这就是数据在传输过程中编码方式转换出现了问题,这里先说解决方法,后说原理。

解决方法:

上传或获取数据库数据时,在链接数据库后,先执行 mysqli_query($dbc,"SET NAMES UTF8"); 语句。

问题就解决完了。

我们现在来看看他的原理所在:

原理这个东西,说起来就复杂了...

 

 

戳这个链接....

http://blog.csdn.net/zsmj_2011/article/details/7943734

我一个学前端要写点这个我心里都虚,直接给链接估计还好点。哈哈哈哈哈。!

 

转载于:https://www.cnblogs.com/donotcheap/p/5651592.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在 PHP提交数据库,需要执行以下步骤: 1. 连接数据库:使用 `mysqli` 或 `PDO` 等扩展库,连接到数据库服务器。 2. 验证数据:检查用户提交的数据是否有效,以防止恶意数据污染数据库。 3. 准备 SQL 语句:使用 `INSERT` 语句,创建一条用于插入数据的 SQL 语句。 4. 执行 SQL 语句:使用 `mysqli_query()` 或 `PDO::exec()` 等函数,执行 SQL 语句。 5. 检查结果:使用 `mysqli_affected_rows()` 或 `PDOStatement::rowCount()` 等函数,检查语句是否执行成功。 6. 关闭连接:关闭与数据库服务器的连接。 以下是一个示例代码: ``` <?php // 连接数据库 $conn = mysqli_connect("localhost", "user", "password", "database"); // 验证数据 $name = mysqli_real_escape_string($conn, $_POST['name']); $email = mysqli_real_escape_string($conn, $_POST['email']); // 准备 SQL 语句 $sql = "INSERT INTO users (name, email) VALUES ('$name', '$email')"; // 执行 SQL 语句 if (mysqli_query($conn, $sql)) { echo "记录插入成功"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } // 关闭连接 mysqli_close($conn); ?> ``` ### 回答2: 在PHP提交数据库是一种常见的操作。下面是一个简的例子来说明这个过程。 首先,我们需要在HTML页面中创建一个。可以使用HTML的form元素和各种输入字段,如input和textarea。例如,我们创建一个包含姓名和电子邮件的: ``` <form action="submit.php" method="post"> <label for="name">姓名:</label> <input type="text" id="name" name="name" required><br> <label for="email">电子邮件:</label> <input type="email" id="email" name="email" required><br> <input type="submit" value="提交"> </form> ``` 在form标签中,我们指定了一个名为"submit.php"的处理的脚本。当用户点击提交按钮时,数据将被发送到这个脚本进行处理。 接下来,我们需要创建一个名为"submit.php"的文件来处理数据。首先,我们需要获取中的数据。在PHP中,可以通过超全局变量$_POST来获取通过POST方法提交数据。例如,我们可以使用以下代码获取姓名和电子邮件: ``` $name = $_POST['name']; $email = $_POST['email']; ``` 然后,我们可以连接到数据库并将数据插入其中。在这个例子中,我们使用MySQL作为数据库引擎,并假设已经建立了一个名为"users"的格。以下是将数据插入数据库的代码: ``` // 连接数据库 $servername = "localhost"; $username = "root"; $password = "123456"; $dbname = "myDB"; $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 插入数据 $sql = "INSERT INTO users (name, email) VALUES ('$name', '$email')"; if ($conn->query($sql) === TRUE) { echo "数据插入成功"; } else { echo "错误: " . $conn->error; } // 关闭连接 $conn->close(); ``` 以上代码将连接到名为"myDB"的数据库,并向"users"格插入一行数据,包含从中获取的姓名和电子邮件。 最后,当用户点击提交按钮时,数据将通过POST方法发送到"submit.php"脚本,并且该脚本将处理数据并将其插入到数据库中。如果插入成功,将输出"数据插入成功";如果有错误,将输出错误信息。 请注意,在实际开发过程中,为了安全考虑,应该对用户输入进行验证和过滤,以防止SQL注入等安全问题。同时,还需要对数据库连接进行适当的配置。上述示例只是一个简的演示,并未涵盖所有的安全和最佳实践。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值