早上好, 我正在瘋狂嘗試使用mysql的第一個php代碼之一。我已經在兩臺服務器上進行了測試,其中一臺託管在別處,另外還使用了本地wamp服務器,結果相同,因此我必須在創建連接的代碼中或在稍後運行查詢時出現錯誤。警告:mysql_query()[function.mysql-query]:拒絕用戶'@'localhost'的訪問(使用密碼:否)
對於wamp我已經驗證了php.ini和MySQL特權,在代碼中我使用了在那裏陳述的憑據。我希望得到一些指導。
<?php
// Function: connect to a database. Returns the database connection.
function connect_db($host, $id, $pwd)
{
$connection = @mysql_connect('localhost', 'username', 'password')
or die('connection problem:' . mysql_error());
mysql_select_db('database_db');
return $connection;
if (!$connection)
{
print ("internal error " . mysql_errno());
}
}
//get names from form
$ID = $_POST['ID'];
$Event= $_POST['Event'];
$Date = $_POST['Date'];
$Time = $_POST['Time'];
$Venue= $_POST['Venue'];
$TypeID= $_POST['TypeID'];
$Score= $_POST['Score'];
$Member = $_POST['Member'];
//insert values
$myquery = "INSERT INTO Results(ID, Event, Date, Time, Venue, TypeID, Score, Member)VALUES('$ID', '$Event', '$Date', '$Time', '$Venue', '$TypeID', '$Score', '$Member')";
$answer = mysql_query($myquery);
if (!$answer) {
$message = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $myquery;
die($message);
}
while ($row = mysql_fetch_assoc($answer)) {
echo "Your results were entered successfully";
echo "<br>";
echo $row['Id'];
echo $row['Event'];
echo $row['Date'];
echo $row['Time'];
echo $row['Venue'];
echo $row['TypeID'];
echo $row['Score'];
echo $row['Member'];
}
?>
** **危險:您正在使用[**的**過時的數據庫API(HTTP:// stackoverflow.com/q/12859942/19068),並應使用[現代替換](http://php.net/manual/en/mysqlinfo.api.choosing.php)。你也**易受[SQL注入攻擊](http://bobby-tables.com/)**,現代的API會使[防禦]更容易(http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)自己從。 – Quentin
@Quentin,你能詳細說明一下嗎?如前所述,這是我的第一次編程經驗。在這個階段,我需要修復與數據庫的連接。 API的東西可以稍後排序,我沒有計劃發佈這項工作。 – Joy
評論中有幾條鏈接詳細說明。 – Quentin