Javascript AJAX/jQuery/PHP/MySQL-如何更新数据库
我需要使用AJAX更新数据库,这样就不会重新加载我的页面。我找不到问题所在,意外地收到一条成功消息,但数据库没有更新 JS: PHP: 在SQL中,表名或列名不使用引号(单引号或双引号)。您可以使用backticks(`),尽管(在您的环境中)不是必需的,但在某些情况下可能需要它 何时使用反勾号(`)? 首先,您只能在MySQL中使用它们,因为SQL Server和T-SQL使用方括号Javascript AJAX/jQuery/PHP/MySQL-如何更新数据库,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我需要使用AJAX更新数据库,这样就不会重新加载我的页面。我找不到问题所在,意外地收到一条成功消息,但数据库没有更新 JS: PHP: 在SQL中,表名或列名不使用引号(单引号或双引号)。您可以使用backticks(`),尽管(在您的环境中)不是必需的,但在某些情况下可能需要它 何时使用反勾号(`)? 首先,您只能在MySQL中使用它们,因为SQL Server和T-SQL使用方括号[]表示标识符 如果在列名或表名中使用空格或关键字,则需要反勾号。这将指示解析器将列或表名解析为文本字符串 举例
[]
表示标识符
如果在列名或表名中使用空格或关键字,则需要反勾号。这将指示解析器将列或表名解析为文本字符串
举例来说,如果您有一个名为“命名错误的表”的表
这行不通
SELECT FROM badly named table...
SELECT FROM `badly named table`...
这将起作用
SELECT FROM badly named table...
SELECT FROM `badly named table`...
总之,如果您的表或列命名约定不正确,反勾号很有用
SQL注入
另外,正如@Fred-ii-所说的,你目前很容易受到攻击。如果使用PHP with,可以使用以下代码(with)防止SQL注入,并确保不会对数据库执行恶意操作
$con = new PDO('mysql:host=localhost; dbname= name_of_db', 'name_of_user', 'password_of_user');
$sql = $con->
prepare("
INSERT INTO uc_project_time userID, projectID, startTime VALUES (:userID, :projectID, :startTime)
");
$sql->bindParam(':userID', $userID,':projectID', $projectID,':startTime', $startTime, PDO::PARAM_STR);
$sql->execute();
$rows = $sql->fetchAll(PDO::FETCH_ASSOC);
或者,如果您想继续使用MySQLi,可以使用prepared语句。也就是说,出于这些原因,我建议使用PDO。不要在表名或列名中使用引号 使用: 或 并对代码进行清理:
$sql=“INSERT INTO uc_project_time(userID,projectID,startTime)值(“$userID”,“$projectID”,“$startTime”)也没有改变代码>?这应该是我回答问题的旁白success:function(){//something}
是多余的,不是必需的,除非您真的打算在成功输入数据库时做些什么。@JackWilliams这确实值得注意,Jack。也许StackOverflow应该开始惩罚这样的用户。这实际上会进入他们的记录中@JackWilliams Plus,用描述标记一个问题也会加快过程;-)给他们足够的“绳子”。。。
$sql = "INSERT INTO uc_project_time (userID, projectID, startTime) VALUES ('$userID', '$projectID', '$startTime')";
$sql = "INSERT INTO uc_project_time (userID, projectID, startTime) VALUES ('".$userID."', '".$projectID."', '".$startTime."')";