Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX/jQuery/PHP/MySQL-如何更新数据库_Javascript_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Javascript AJAX/jQuery/PHP/MySQL-如何更新数据库

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使用方括号[]表示标识符 如果在列名或表名中使用空格或关键字,则需要反勾号。这将指示解析器将列或表名解析为文本字符串 举例

我需要使用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."')";