基于用户输入的 PHP 和 MySQL 查询不起作用

标签 php html mysql forms phpmyadmin

我正在创建一个用户数据库,其中有 4 个字段:ID、用户名、密码和职业。这是一个测试数据库。我尝试查询 db 表并且它有效但是我在有用户输入和基于它的 MySQL 查询时遇到了很多麻烦。我在 Linux(Debian、Ubuntu)中运行 Apache 服务器。

我有 2 页。第一个是简单的测试索引页。这是人们输入简单信息以在数据库中注册他们的信息的文本框。这是它的代码:

<html>
<form action="reg.php" method="POST">
  Username:
  <input type="text" name="u">Password:
  <input type="password" name="p">Occupation:
  <input type="text" name="o">
  <input type="submit" value="register">


</form>

</html>

点击提交按钮后。它转到 reg.php 文件。这就是它变得复杂的地方。页面变成空白!!!数据库中没有显示或输入任何内容。正常查询运行良好,但是当添加用户交互时,就会出现问题。这是 reg.php 的代码:

<?php
$un = $_POST["u"]
$pk = $_POST["p"]
$ok = $_POST["o"]
$u = mysql_real_escape_string($un);
$p = mysql_real_escape_string($pk);  
$o = mysql_real_escape_string($ok);    

$link = mysql_connect('localhost', 'root', 'randompassword');
if (!$link){
die(' Oops. We Have A Problem Here: ' . mysql_error());
}

if ($link){
echo 'connected succesfully';
}

mysql_select_db("forum") or die(' Oops. We Have A Problem Here: ' . mysql_error());
$data = mysql_query("INSERT INTO users (username, password, occupation) VALUES ('{$u}', '{$p}', '{$o}')");

?>

任何人都可以帮助我更正此代码以使其正常工作吗? 非常感谢您的参与。非常感激。

编辑: 我注意到我没有在前 3 行中添加分号。这样做之后我得到了这个错误:“你的 SQL 语法有错误;请检查与你的 MySQL 服务器版本对应的手册,以了解在第 1 行的 '{'', '', '')' 附近使用的正确语法”谁能解释一下为什么?

编辑:该网站就在我的本地机器上...... 在 linux 上的 apache 服务器上

最佳答案

您在前三行中缺少分号。

$un = $_POST["u"];
$pk = $_POST["p"];
$ok = $_POST["o"];

关于基于用户输入的 PHP 和 MySQL 查询不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29086966/

相关文章:

mysql - 这个 "bus stations"的数据库怎么设计呢?

mysql - 数据库建模故障排除

jquery - 如何向网页添加固定侧边栏?

php - 当给定的变量可能没有值时,在 PHP 中强制保留 2 位小数且不使用逗号

php - 我的 htaccess 文件无法加载 css

php - CakePHP 为模型使用多个数据库

javascript - 可以下载样式表并将其应用于 Angular ngBindHtml 吗?

javascript - 将 Canvas 保存为 PNG 或 JPEG 文件

mysql - yii 分页问题尝试使用 2 个标准

php - 使用格式化的键和值将所有 MYSQL 记录传递到数组中