Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于用户输入的PHP和MySQL查询不起作用_Php_Html_Mysql_Forms_Phpmyadmin - Fatal编程技术网

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

基于用户输入的PHP和MySQL查询不起作用,php,html,mysql,forms,phpmyadmin,Php,Html,Mysql,Forms,Phpmyadmin,我正在创建一个用户数据库,其中有4个字段:ID、用户名、密码和职业。这是一个测试数据库。我试着查询db表,它成功了,但是我在用户输入和基于它的MySQL查询时遇到了很多麻烦。我在Linux Debian和Ubuntu中运行Apache服务器 我有两页。第一个是裸骨测试索引页。这里有文本框供人们输入简单信息,以便在数据库中注册信息。下面是它的代码: 用户名: 密码: 职业: 尝试将以下内容添加到脚本的顶部: error_reporting(E_ALL); ini_set("display_err

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

我有两页。第一个是裸骨测试索引页。这里有文本框供人们输入简单信息,以便在数据库中注册信息。下面是它的代码:

用户名: 密码: 职业:
尝试将以下内容添加到脚本的顶部:

error_reporting(E_ALL);
ini_set("display_errors", 1);

这样,您将看到您在语法上甚至在SQL中犯下的所有错误。

尝试将其添加到脚本顶部:

error_reporting(E_ALL);
ini_set("display_errors", 1);

这样,您将看到您在语法上甚至在SQL中犯下的所有错误。

前三行缺少分号

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

前三行缺少分号

$un = $_POST["u"];
$pk = $_POST["p"];
$ok = $_POST["o"];
mysql\u real\u escape\u字符串需要db连接。 试试这个

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

$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());

$u = mysql_real_escape_string($un);
$p = mysql_real_escape_string($pk);
$o = mysql_real_escape_string($ok);
$sql = "INSERT INTO users (username, password, occupation) VALUES ('$u', '$p', '$o')";
$ins_sql = mysql_query($sql);
IF($ins_sql) {
  echo 'Inserted new record.';
}ELSE{
  echo 'Insert Failed.';
}
?>
mysql\u real\u escape\u字符串需要db连接。 试试这个

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

$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());

$u = mysql_real_escape_string($un);
$p = mysql_real_escape_string($pk);
$o = mysql_real_escape_string($ok);
$sql = "INSERT INTO users (username, password, occupation) VALUES ('$u', '$p', '$o')";
$ins_sql = mysql_query($sql);
IF($ins_sql) {
  echo 'Inserted new record.';
}ELSE{
  echo 'Insert Failed.';
}
?>



反问:这个网站会上线吗?空白页意味着:在打开PHP标签后立即在文件顶部添加错误报告。例如,否。该网站现在不上线…很好。存储哈希,而不是用于密码存储的字符串文字。另外,错误报告会发出解析错误的信号。所有这些死亡让我想哭:'反问:这个网站会上线吗?空白页的意思是:在打开PHP标签后立即将错误报告添加到文件顶部。例如,否。该网站现在不上线…很好。存储哈希,而不是用于密码存储的字符串文字。此外,错误报告会发出解析错误的信号。所有这些死亡让我想哭:“这不是一个解决方案,而是故障排除/调试;在我的书中有更多的注释,这些注释已经在注释中列出了。我注意到我没有在前3行中添加分号。这样做之后,我得到了这个错误:您的SQL语法有一个错误;查看与您的MySQL服务器版本对应的手册,了解使用near的正确语法{,'在第1行。有人能解释为什么吗?如果我没记错的话,你的SQL应该是这样的:mysqli_query插入用户用户名、密码、职业值'$u'、'$p'、'$o';另外请注意,我使用了mysqli_query而不是mysql_query,因为第二个查询已被弃用,最终会向你抛出更多错误。不,Phil M。这不是问题mysqli扩展。我肯定知道这一点,因为当我执行测试查询时,它工作得非常好。测试查询没有使用mysqli。你当时搞错了。我不仅更改了命令,而且还进一步更改了变量以及它们在这个字符串模式中的传递方式。请再次阅读代码。这不是一个解决方案,而是troubleshooting/debugging;更多我的书中的一条评论,已经在评论中列出了。我注意到我没有在前3行中添加分号。这样做后,我得到了一个错误:您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解使用near的正确语法{,'在第1行。有人能解释为什么吗?如果我没记错的话,你的SQL应该是这样的:mysqli_query插入用户用户名、密码、职业值'$u'、'$p'、'$o';另外请注意,我使用了mysqli_query而不是mysql_query,因为第二个查询已被弃用,最终会向你抛出更多错误。不,Phil M。这不是问题mysqli扩展。我肯定知道这一点,因为当我执行测试查询时,它工作得非常好。测试查询没有使用mysqli。你当时搞错了。我不仅更改了命令,而且还进一步更改了变量以及它们在这个字符串模式中的传递方式。再次阅读代码。哎呀……没有注意到。谢谢各位,时间不多了。0向下投票接受我注意到我没有在前3行中添加分号。这样做后,我得到了一个错误:您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解使用near的正确语法{,'在第1行。有人能解释一下原因吗?您在最后一行PHP中更改了SQL语句了吗?我应该如何更改@Dimitryoops…什么都没有注意到。非常感谢您的时间。0否决投票接受我注意到我没有在前3行中添加分号。执行此操作后,我出现以下错误:您的SQL syn中有一个错误tax;查看与您的MySQL服务器版本对应的手册,了解使用near的正确语法{,'在第1行。有人能解释一下原因吗?您在最后一行PHP中更改了SQL语句了吗?我应该如何更改@DimitryFor?出于某种原因,连接的文本成功显示了,但查询没有执行…修复了…很抱歉。非常感谢Brian!成功了!现在我终于可以开始处理其余代码了
!没问题,很高兴我能帮忙。我还建议您清理/验证用户输入。创建一个dbconnect.php文件并使用require_once'path/to/dbconnect.php';谢谢你的联系。别忘了mysql\u close$link;谢谢你的时间和帮助。非常感谢。由于某些原因,连接的文本成功显示,但查询未执行…修复。。。对不起,非常感谢你,布莱恩!成功了!现在我终于可以开始我的代码的其余部分了!没问题,很高兴我能帮忙。我还建议您清理/验证用户输入。创建一个dbconnect.php文件并使用require_once'path/to/dbconnect.php';谢谢你的联系。别忘了mysql\u close$link;谢谢你的时间和帮助。非常感谢。