所以我试图让这个网站接收一个文本文档给它的值,然后将它们压入mySQL数据库。我在php中运行的代码没有给我任何语法错误,但是这些值没有添加到数据库表中。
$upload = new mysqli('localhost', 'uMoviesRoot', $_POST['password1']);
if (mysqli_connect_errno()) {
echo "There as an error.";
}
else {
mysql_select_db("localhost");
$file= fopen($_FILES['Upload']['tmp_name'], 'r');
while(! feof($file)){
$line = fgetcsv($file, 999);
if ($line[0] == "movie") {
mysql_query("INSERT INTO movies (movie, year) VALUES ($line[1], $line[2])");
$movieCount++;
$lastMovie = $line[1];
}
只是一些背景知识,我在mySQL中创建了表(使用MySQL工作台),并制作了一个名为movies的模式。有些表名为actors(2列),directed_by(2列),控制器(1列),电影(2列)和perform_in(3列)。我只在代码中添加了其中一个,只是为了缩短它(因为所有的if都做同样的事情)。
这是我的PHP代码的问题吗?
答案 0 :(得分:1)
您应该mysql_select_db("movies");
,localhost
是您的服务器地址而不是数据库名称。
更新(不是测试,但这应该有效):
$upload = new mysqli('localhost', 'uMoviesRoot', $_POST['password1']);
if (mysqli_connect_errno()) {
echo "There as an error.";
} else {
mysql_select_db("movies");
$file= fopen($_FILES['Upload']['tmp_name'], 'r');
while(! feof($file)){
$line = fgetcsv($file, 999);
if ($line[0] == "movie") {
mysql_query("INSERT INTO movies (movie, year) VALUES ('$line[1]', '$line[2]')");
$movieCount++;
$lastMovie = $line[1];
}
}
}
您还可以输出mysql_error以查看错误。
如果你有来自用户输入的值,你应该看看Prepared Statements以避免SQL注入等。