mysql_query(): 用户 ''@'localhost' 的访问被拒绝
mysql_query(): Access denied for user ''@'localhost'
我看到有很多类似的问题,但我没有找到任何人有类似的代码。
脚本将文件上传到服务器,但我还想插入有关已上传文件的数据。文件按应有的方式上传,没有错误,但 phpmyadmin 中的 table 保持为空。
error_log 中的错误:
PHP Warning: mysql_query(): Access denied for user ''@'localhost' (using password: NO) in *path*/upload.php on line 65
PHP Warning: mysql_query(): A link to the server could not be established in *path*/upload.php on line 65
当我在网站上得到输出 "Localhost via UNIX socket 127.0.0.1 via TCP/IP" 而不是 mysql warning/error 时,连接似乎正常工作。
连接脚本(uploadconnect.php):
<?php
$mysqli = new mysqli("localhost", "*username*", "*password*", "*database*");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";
$mysqli = new mysqli("127.0.0.1", "*username*", "*password*", "*database*", 3306);
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";
?>
上传PHP脚本:
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<button type="submit" name="btn-upload">upload</button>
</form>
<?php
include_once 'uploadconnect.php';
if(isset($_POST['btn-upload']))
{
$file = rand(1000,100000)."-".$_FILES['file']['name'];
$file_loc = $_FILES['file']['tmp_name'];
$file_size = $_FILES['file']['size'];
$file_type = $_FILES['file']['type'];
$folder="uploads/";
$new_size = $file_size/1024;
$new_file_name = strtolower($file);
$final_file=str_replace(' ','-',$new_file_name);
if(move_uploaded_file($file_loc,$folder.$final_file))
{
$sql="INSERT INTO uploadedfiles(file,type,size) VALUES('$final_file','$file_type','$new_size')";
mysql_query($sql); #<--- LINE 65
?>
<script>
alert('successfully uploaded');
window.location.href='upload.php?success';
</script>
<?php
}
else
{
?>
<script>
alert('error while uploading file');
window.location.href='upload.php?fail';
</script>
<?php
}
}
?>
错误似乎出现在上传文件第 65 行的 "mysql_query($sql);"。
您已使用 mysqli
创建了数据库连接。这不适用于 obsolete mysql
图书馆。始终如一地使用 mysqli
。
我看到有很多类似的问题,但我没有找到任何人有类似的代码。
脚本将文件上传到服务器,但我还想插入有关已上传文件的数据。文件按应有的方式上传,没有错误,但 phpmyadmin 中的 table 保持为空。
error_log 中的错误:
PHP Warning: mysql_query(): Access denied for user ''@'localhost' (using password: NO) in *path*/upload.php on line 65
PHP Warning: mysql_query(): A link to the server could not be established in *path*/upload.php on line 65
当我在网站上得到输出 "Localhost via UNIX socket 127.0.0.1 via TCP/IP" 而不是 mysql warning/error 时,连接似乎正常工作。
连接脚本(uploadconnect.php):
<?php
$mysqli = new mysqli("localhost", "*username*", "*password*", "*database*");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";
$mysqli = new mysqli("127.0.0.1", "*username*", "*password*", "*database*", 3306);
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";
?>
上传PHP脚本:
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<button type="submit" name="btn-upload">upload</button>
</form>
<?php
include_once 'uploadconnect.php';
if(isset($_POST['btn-upload']))
{
$file = rand(1000,100000)."-".$_FILES['file']['name'];
$file_loc = $_FILES['file']['tmp_name'];
$file_size = $_FILES['file']['size'];
$file_type = $_FILES['file']['type'];
$folder="uploads/";
$new_size = $file_size/1024;
$new_file_name = strtolower($file);
$final_file=str_replace(' ','-',$new_file_name);
if(move_uploaded_file($file_loc,$folder.$final_file))
{
$sql="INSERT INTO uploadedfiles(file,type,size) VALUES('$final_file','$file_type','$new_size')";
mysql_query($sql); #<--- LINE 65
?>
<script>
alert('successfully uploaded');
window.location.href='upload.php?success';
</script>
<?php
}
else
{
?>
<script>
alert('error while uploading file');
window.location.href='upload.php?fail';
</script>
<?php
}
}
?>
错误似乎出现在上传文件第 65 行的 "mysql_query($sql);"。
您已使用 mysqli
创建了数据库连接。这不适用于 obsolete mysql
图书馆。始终如一地使用 mysqli
。