【发布时间】:2013-12-11 00:53:03
【问题描述】:
我对 php 很陌生,我真的很想学习它。我正在向 w3school 学习,但我无法做到这一点(保存到数据库)......我还尝试在 .php 中指定值并设法不出错,但它没有保存在数据库中。请告诉我这有什么问题。
<form action="submit.php" method="POST">
<p>Name:<input type="text" name="name"/></p>
<p>Email:<input type="text" name="email"/></p>
<p>Message:<textarea rows="3" cols="1" name="message"></textarea></p>
<a href="submit.php">Submit</a>
</form>
PHP 文件
<?php
$con = mysqli_connect("localhost","root","","kellywood");
if (mysqli_connect_errno()) {
echo "Failed to connect to Database";
} else {
echo "Connected";
}
$sql = "INSERT INTO kellywood (messages.name, messages.email, messages.message) VALUES ('$_POST[name]','$_POST[email]','$_POST[message]')");
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
mysqli_close($con);
?>
没有错误,我指定了值但它没有保存在数据库中。
<?php
$con = mysqli_connect("localhost","root","","kellywood");
if (mysqli_connect_errno()) {
echo "Failed to connect to Database";
} else {
echo "Connected";
}
mysqli_query($con,"INSERT INTO kellywood(messages.name, messages.email, messages.message) VALUES ('Peter', 'Griffin',35)");
mysqli_close($con);
?>
抱歉这个菜鸟问题,但我是 php 新手...请帮助
【问题讨论】:
-
我建议不要使用 w3school 来学习。这不是很好。如果您真的有兴趣,请查看 PDO 准备好的语句,因为它更安全,而且您最好先开始使用它,而不是学习以后必须改正的坏习惯。
-
把这个
messages.name, messages.email, messages.message改成这个name, email, message我猜你的桌子kellywood在你的insert语句上只有这个字段 -
@Niketa 使用 PDO 并不能保护一个人远离坏习惯。 Mysqli 非常好。我已经看到使用 PDO 创建的准备好的语句的一些真正糟糕的用途。
-
@jorge,仍然错误,“解析错误:语法错误,意外 ')' 在 C:\wamp\www\For Allied Web\submit.php 第 10 行”
-
试试这个: $sql = "INSERT INTO kellywood (name, email, message) VALUES ('" .$_POST['name'] . "','" . $_POST['email' ] . "','" . $_POST['message']"')";