Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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 从html表单向数据库中添加记录_Php_Sql - Fatal编程技术网

Php 从html表单向数据库中添加记录

Php 从html表单向数据库中添加记录,php,sql,Php,Sql,我正在尝试从我创建的一个简单html表单向数据库中添加记录。我不断发现这个错误: connected SuccessfullyError:您的SQL语法有错误;检查与MySQL服务器版本相对应的手册,以获取第1行中使用的正确语法(接近“)” 连接成功,但sql语句有问题,我无法发现错误 这是表格 <form action="addplayer.php"method "post"/> <p> id: <input type="text" name

我正在尝试从我创建的一个简单html表单向数据库中添加记录。我不断发现这个错误:

connected SuccessfullyError:您的SQL语法有错误;检查与MySQL服务器版本相对应的手册,以获取第1行中使用的正确语法(接近“)”

连接成功,但sql语句有问题,我无法发现错误

这是表格

 <form action="addplayer.php"method "post"/>

         <p> id: <input type="text" name="playerid"/></p>
         <p> Name: <input type="text" name="name"/></p>
         <p> Age: <input type="text" name="age"/></p>
         <p> Position: <input type="text" name="position"/></p>
         <p> Nationality: <input type="text" name="nationality"/></p>
     <input type="submit" value="submit"/>

身份证:

姓名:

年龄:

职位:

国籍:

这是连接

     <?php

define('DB_NAME', 'syokimaufc');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

if (!$link) {
    die ('could not connect: '. mysql_error());
}
$db_selected= mysql_select_db(DB_NAME, $link);
if (!$db_selected){
    die('can\'t use' . DB_NAME .': ' . mysql_error());
}
echo 'connected successfully';
更改:

$sql = "INSERT INTO players (playerid,Name,Age,Position,Nationslity) VALUES ('$id','$name','$age','$position',$nationality)";
$sql = "INSERT INTO players (playerid,Name,Age,Position,Nationslity) VALUES ('$id','$name','$age','$position',$nationality)";
致:

更新 正如Jeff Puckett II在下面的评论部分正确指出的那样,我草率给出了我的初步答案,并且应该提到,不清理数据会让自己面临SQL注入和其他棘手的问题

要更安全地执行操作,请更改:

致:


您缺少
$national
的引号,并且您的页面非常容易受到sql注入攻击。停止使用mysql_*函数,通过学习在PDO中使用预先准备好的语句来帮自己一个忙。虽然这在技术上并不错误,但这是一个糟糕的答案,因为它不支持净化用户输入的最佳实践。你应该尽可能地给出最好的答案,而不是最快最脏的,我相信你可以做得更好:)谢谢你的帮助。我是php新手,每天都在学习@谢谢你的评论,但不是送货。你好,我好像遇到了另一个小问题。一旦我运行代码,网页输出“成功完成”,但记录不显示。似乎它为每个字段输入了null值,因为当我尝试输入另一条记录时,我收到了以下错误“已成功连接错误:键“PRIMARY”的重复条目“0”我该如何解决这个问题?@KevinG获得新问题答案的最佳方法是将初始问题的正确答案标记为解决方案,然后将新问题作为全新问题发布。
$sql = "INSERT INTO players (playerid,Name,Age,Position,Nationality) VALUES ('$id','$name','$age','$position','$nationality')";
$sql = "INSERT INTO players (playerid,Name,Age,Position,Nationslity) VALUES ('$id','$name','$age','$position',$nationality)";
$_id = mysql_real_escape_string( $id );
$_name = mysql_real_escape_string( $name );
$_age = mysql_real_escape_string( $age );
$_position = mysql_real_escape_string( $position );
$_nationality = mysql_real_escape_string( $nationality );
$sql = "INSERT INTO players ( playerid, Name, Age, Position, Nationality ) VALUES ( '$_id', '$_name', '$_age', '$_position', '$_nationality' )";