为什么我不能用php将数据插入到我的sql数据库中 [英] why cant i insert data into my sql db with php
本文介绍了为什么我不能用php将数据插入到我的sql数据库中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
它相当令人沮丧,并且肯定它很容易解决.据我所知,我的代码是正确的,这使我相信服务器存在问题.我已经创建了数据库,并且可以从命令行将数据插入表中.如果有帮助,我正在使用WAMP.
its rather frustrating and im sure its an easy fix. as far as i can tell my code is spot on which leads me to believe there is a server problem. i have created the DB and i can insert data into table from the command line. if it helps i am using WAMP.
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="permission"; // Mysql password
$db_name="login"; // Database name
$tbl_name="members"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form
$myusername=$_POST['username'];
$mypassword=$_POST['password'];
$myfname=$_POST['fname'];
$mylname=$_POST['lname'];
$myemail=$_POST['email'];
// To protect MySQL injection
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// username taken
echo "Username already taken";
exit();
}
//protection against sql injection
if (get_magic_quotes_gpc())
{
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map(stripslashes_deep, $value) :
stripslashes($value) ;
return $value;
}
$_POST = array_map(stripslashes_deep, $_POST);
$_GET = array_map(stripslashes_deep, $_GET);
$_COOKIE = array_map(stripslashes_deep, $_COOKIE);
$_REQUEST = array_map(stripslashes_deep, $_REQUEST);
}
//insert form into DB members
'INSERT INTO members SET
username="' . $myusername . '",
password="' . $mypassword . '",
email="' . $myemail . '",
fname="' . $myfname . '",
lname="' . $mylname . '",';
session_register("myusername");
session_register("mypassword");
header("location:registersuccess.html");
?>
推荐答案
除了SQL注入问题外,您还有不必要的尾部逗号.
Apart from the SQL injection issue, you have an unnecessary trailing comma.
更改:
lname="' . $mylname . '",';
收件人:
lname="' . $mylname . '"';
这篇关于为什么我不能用php将数据插入到我的sql数据库中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文