脚本宝典收集整理的这篇文章主要介绍了php – 我无法将表单数据导入数据库.我究竟做错了什么?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我是PHP和数据库的新手……我一直在努力让简单的htML表单数据进入数据库表.我只是不能让它工作:(任何人都可以帮助,看看我的代码有什么问题吗?我刚刚在数据库中用字段ID,FirstNamE和SURNAME完成了一个简单的表.
这是代码:
<?PHP //connect to database $MysqL_host = 'localhost'; $MysqL_user = 'root'; $MysqL_pass = ''; $MysqL_db = 'test'; if (!MysqL_connect ($MysqL_host,$MysqL_user,$MysqL_pass)||!MysqL_select_db ($MysqL_db) ) { die(MysqL_error()); } // Code if (isset($_POST['firstname'])&& isset($_POST['surname'])) { $firstname = $_POST['firstname']; $surname = $_POST['surname']; if (!empty($username)&&!empty($password)) { $query = "INSERT INTO `test`.`test_tabell` VALUES ('','" . MysqL_real_escaPE_string($firstname) . "','" . MysqL_real_escape_string($surname) . "')"; /*$query = "INSERT INTO `test`.`test_tabell` VALUES (``,`.$firstname.`,`.$surname.`)"; */ $query_run = MysqL_query($query); if (!$query_run) echo MysqL_error(); } } ?> <form action="add.PHP" method="POST"> Firstname:<br> <input type="text" name="firstname" value="<?PHP if (isset($firstname)) { echo $firstname; } ?>"><br><br> Surname:<br> <input type="text" name="surname" value="<?PHP if (isset($surname)) { echo $surname; } ?>"><br><br> <input type="submIT" value="Submit"> </form>
谢谢!
我建议使用PDO,你可以这样做:
// usage: $db = connectToDataBase($dbHost,$dbName,$dbUsername,$dbPassword); // PRe: $dbHost is the database hostname,// $dbName is the name of the database itself,// $dbUsername is the username to access the database,// $dbPassword is the password for the user of the database. // Post: $db is an PDO connection to the database,based on the input parameters. function connectToDataBase($dbHost,$dbPassword) { try { return new PDO("MysqL:host=$dbHost;dbname=$dbName;charset=UTF-8",$dbPassword); } catch(PDOException $PDOexception) { exit("<p>An error ocurred: Can't connect to database. </p><p>more preciesly: ". $PDOexception->getMessage(). "</p>"); } }
$host = 'localhost'; $user = 'root'; $dataBaseName = 'databaseName'; $pass = '';
现在您可以通过访问您的数据库
$GLOBALS['db'] = connectToDataBase($host,$databaseName,$user,$pass);
我想要指出的一件事是,你对sql注入是有用的,你想在查询中使用预准备语句,如:
$query = "INSERT INTO test(first_name,sur_name) VALUES (:firstname,:surname);";
我们将在查询中执行两个变量$firstName和$surName,使它们替换:firstName和:surName的值,让我先创建一个简单的插入函数给你看:
function insertFunction($db,$query,$firstName,$surName) { $statement = $db->prepare($query); return $statement->execute(array(":firstName" => $firstName,":surName" => $surName)); }
所以你很容易做类似的事情
$firstName = 'Smith'; $surName = 'John'; $db = $GLOBALS['db']; $success = insertFunction($db,$surName);
现在,您可以通过检查$success是true还是false来检查它是否成功.
如果你想看到更高级的PDO使用(多行等),那么你可以在这里查看我的一条评论:Javascript function as php?
(不是最高评论).
我希望这有帮助.如果有什么奇怪的话请评论.
以上是脚本宝典为你收集整理的php – 我无法将表单数据导入数据库.我究竟做错了什么?全部内容,希望文章能够帮你解决php – 我无法将表单数据导入数据库.我究竟做错了什么?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。