因此,我在TAFE上創建了一個站點(來自模板和給定的鏈接/數據庫),所以我無法編輯我的數據庫。 Anywho,當我加載我的網頁,我得到一個語法錯誤關於 '@' 符號旁邊什麼:在數據庫中使用at符號(@)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@com.au' at line 1
我的代碼是:
mysql_select_db($database_sim6a2010, $sim6a2010);
$query_Recordset1 = "SELECT * FROM employeeproject WHERE projectID=" . $_GET['projectID'];
$Recordset1 = mysql_query($query_Recordset1, $sim6a2010) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
mysql_select_db($database_sim6a2010, $sim6a2010);
$query_Recordset2 = "SELECT * FROM project WHERE projectID=" . $_GET['projectID'];
$Recordset2 = mysql_query($query_Recordset2, $sim6a2010) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);
mysql_select_db($database_sim6a2010, $sim6a2010);
$query_Recordset3 = "SELECT employee.name, employeeproject.hours, employee.imgLocation FROM employee, employeeproject WHERE email=" . $row_Recordset1["email"];
$Recordset3 = mysql_query($query_Recordset3, $sim6a2010) or die(mysql_error());
$row_Recordset3 = mysql_fetch_assoc($Recordset3);
$totalRows_Recordset3 = mysql_num_rows($Recordset3);
我要在這裏指出,I DO不像使用mysql,我被告知在這個論壇上不使用它(我不會),但這是我們正在使用和必須使用的。 除了我不喜歡Dreamweaver的巨大「Chuck毫無意義的代碼在你的頁面上」,但我們被告知我們必須使用Dreamweaver的記錄集和GUI的東西。
Anywho,從而得到錯誤的部分是:
$query_Recordset3 = "SELECT employee.name, employeeproject.hours, employee.imgLocation FROM employee, employeeproject WHERE email=" . $row_Recordset1["email"];
它的電子郵件一部分,你會懷疑,充滿了像「薩姆@ COM」和東西的東西,這是造成錯誤,我該如何讓PHP知道數據庫中的@ sybmols不是代碼?
希望我已經提供了足夠的信息。我決定提出要求,因爲涉及at號(@)的任何搜索都會將其用作代碼。
您應該使用參數化查詢。這將解決你在這裏的問題,它會保護你免受SQL注入。 http://bobby-tables.com/php.html有例子。此外,'mysql_'函數已被棄用,不應再使用。 –