- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 jquery 函数写入一条新记录。
$.post("insertuser.php",$("#rohanStart").serialize(),function(data){
alert(data);
});
这似乎有效,并且我确实收到了带有 echo'ed statmenet 的警报。问题是这些值没有写入数据库。查询语句有问题吗?
mysql_query("INSERT INTO ajax_demo1( FirstName,LastName,Unit,Group,photo)
VALUES (
'".$arr['FirstName']."',
'".$arr['LastName']."',
'".$arr['Unit']."',
'".$arr['Group']."',
'".$arr['photo']."'
)");
echo $arr['Group'];
最佳答案
首先不要使用 jQuery 或任何框架,它们依赖于专有的 Microsoft JScript innerHTML 方法,该方法无法与 DOM 一起正常工作,从而在脚本编写中增加大量的歧义。
其次,您没有正确转义进入数据库的数据,这是一个严重的安全问题。
第三,您的数据库查询方法没有考虑错误处理,您只是直接转储查询并希望得到最好的结果。
您应该始终对您的疑问进行编号并附上它们,如下所示。请注意,除了错误之外,最好预先失败条件,但是对于数据库结构,如果成功,您应该首先执行,然后失败增加缩进(通过一个空格,而不是这个选项卡浪费,因为您有五个屏幕可以水平滚动),所以您可以在自己的代码中直观地看到您所处的位置。
$query1 = "SELECT * FROM table_name WHERE something='value'";
$result1 = mysql_query($query1);
if ($result1)
{
$row1 = mysql_fetch_assoc($result1);
}
else {mysql_error_report($query1,mysql_error(),__FUNCTION__);}
如果您的主 header 包含(您确实为除 AJAX 之外的所有请求都包含了主 header 吗?),您应该拥有一个通用 MySQL 错误处理函数,可用于记录 SQL 错误。
以下是通用数据库错误处理程序。您应该有 HTTP、JavaScript、PHP 和 SQL 错误的管理错误日志,以便您可以查看并纠正访问者遇到的问题,而不是仅仅让它们给您带来不便。
function mysql_error_report($q,$e,$f)
{
if (isset($_SESSION['database']))
{
if (isset($_SESSION['id_member'])) {$id = $_SESSION['id_member'];} else {$id = 0;}
if (isset($_SESSION)) {$session = mysql_real_escape_string(session_id());} else {$session = 0;}
$ip = mysql_real_escape_string(getenv('REMOTE_ADDR'));
$query = mysql_real_escape_string($q);
$error = mysql_real_escape_string($e);
$function = mysql_real_escape_string($f);
if (isset($_SESSION['type'])) {$type = mysql_real_escape_string($_SESSION['type']);} else if (isset($_SESSION['cms_browser'])) {$type = 'Browser';} else {$type = 'Unknown';}
if (isset($_SERVER['REQUEST_URI'])) {$url = $_SERVER['REQUEST_URI'];} else {$url = '';}
if (isset($_SERVER['HTTP_USER_AGENT'])) {$ua = mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']);} else {$ua = '';}
$query1 = "INSERT INTO log_errors_sql (id_session, type, id_user, date, ip, function, mysql_error, mysql_query, url, user_agent) VALUES ('$session', '$type', '$id', NOW(), INET_ATON('$ip'), '$function', '$error', '$query', '$url', '$ua')";
$result1 = mysql_query($query1);
if (!$result1) {mysql_error_report_mail($q,$e,$f,$ua);}
}
else {mysql_error_report_mail($q,$e,$f);}
}
通过使用这种方法,您将更加严格地加强编码实践。您不希望出现歧义,您希望对代码保持严格,因为编码中的主观性越少,代码能够处理的能力就越强。
而且你的空白区域非常松散。
这个...
INSERT INTO ajax_demo1( FirstName,LastName,Unit,Group,photo)
应该这样格式化...
INSERT INTO ajax_demo1(FirstName, LastName, Unit, Group, photo)
您可能会问,如果您没有花费大量时间进行查找和替换,为什么保持这样的空白很重要(查找“高级查找和替换”,它适用于 wine/Linux 并破坏了从 native Linux 控制台命令性能方面来说,它非常便宜,支持正则表达式等)你会发现自己在眨眼之间进行大规模站点范围的编辑,因为即使你的空白也是同样严格的方法.
如果您听取我的建议,请使用 AFR(高级查找和替换)来搜索(但不替换)“mysql_query”的所有实例并更正您所编写的所有内容的格式。混合一些 AJAX 通知,当您仍在浏览器中时,无需使用任何 alt-tab,您就可以立即看到错误。我就是这样滚动的。
...当然这样做会让你的调试变得更加容易。这不是鱼,这是钓鱼,我希望它有帮助。
关于php - 插入在 MYSQL 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11705505/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!