我有一个表单发送数据到下面的php。没有错误出现,但没有信息被插入数据库,我不明白为什么。我有三重检查所有的表名等,一切都是正确的。代码回显没有显示在表单中,但它不会更新到数据库!mySQL插入不会更新数据库
<?php
//variables for db
$username = "";
$password = "";
$hostname = "localhost";
$dbname = "infinity";
//connection to the database
$con = mysql_connect($hostname, $username, $password);
if($con == FALSE)
{
echo 'Cannot connect to database' . mysql_error();
}
mysql_select_db($dbname, $con);
$name=$_POST["name"];
$logo=$_POST["logo"];
$logo="<img src=\"images/".$logo."\" alt=\"$name Logo\" />";
$blurb=$_POST["blurb"];
$link=$_POST["link"];
echo $name;
echo $logo;
echo $blurb;
echo $link;
//Insert Values into Database
mysql_query("INSERT INTO `infinity`.`sponsors` (`name`, `logo`, `blurb`, `link`) VALUES ('$name', '$logo', '$blurb', '$link');");
?>
您不是从'mysql_query()'返回并检查错误。检查'echo mysql_error()'看看它为什么失败。这可能有多种原因,其中最重要的是您的输入未转义。任何输入中出现的任何单引号_将破坏您的查询,同时它也容易受到SQL注入的影响。这是开始使用PDO学习参数化查询的好时机,因为不推荐使用'mysql_query()'。 –
您在这里容易受到[SQL注入](http://en.wikipedia.org/wiki/SQL_injection)的影响,并且使用已弃用的PHP函数。你应该研究新的代码['PDO'或'mysqli'](http://php.net/manual/en/mysqlinfo.api.choosing.php)! – msturdy
'infinity'.'sponsors'? –