gpt4 book ai didi

php - 使用 PHP 将数据插入 MySQL 时出现问题

转载 作者:行者123 更新时间:2023-11-29 08:21:15 27 4
gpt4 key购买 nike

我是 PHP 新手。我一直在开发一个简单的表单,将数据提交到 MySQL 数据库中,但遇到了障碍。我只是不确定代码中的错误在哪里,任何帮助将不胜感激。

<?php

$host = 'localhost'; // hostname
$username = 'root'; // MySQL Username
$password = 'root'; // MySQL Password
$db_name = 'idp'; // Database name
$tbl_name = 'data'; // Table name

// Attempt MySQL Connection
mysql_connect("$host", "$username", "$password")or die("Cannot connect.");
// Attempt database connection
mysql_select_db("$db_name")or die("Cannot select DB.");

$name = $_POST['name'];
$mbr_name = $_POST['mbr_name'];
$mbr_tel = $_POST['mbr_tel'];
$date = $_POST['date'];

$sql = "INSERT INTO $tbl_name(name, mbr_name, mbr_tel, date)VALUES('$name', '$mbr_name', '$mbr_tel', '$date')";
$result = mysql_query($sql);

if($result) {
echo "Entry Successful";
echo "<br>";
echo "<a href='form.php'>Return to Form</a>";
} else {
echo "<strong>Error</strong>";
}

mysql_close();
?>

最佳答案

我的猜测是,您获得的输入参数之一中包含未转义的 '" 字符。因此,您的查询由于意外的原因而中断引用字符。要验证情况是否如此,请在创建 sql 语句后为该 sql 引入另一个打印语句,并在查询浏览器中手动运行它,看看它是否有效。

此外,代码中的 if($result) { block 会打印出成功或失败消息,无论失败发生的原因如何,因此输出信息也不是特别有用。

您应该查看 [addslashes][1] 方法来转义这些引号字符。

您的查询将变成类似的内容

$sql = "INSERT INTO $tbl_name(name, date)VALUES('".addslashes($name)."', '".$date."')";

另外,我建议看看pdo用于您的 sql 查询而不是 mysql_* 函数。

关于php - 使用 PHP 将数据插入 MySQL 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19365943/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com