php - SQL语句切换值并且不插入数据库

标签 php mysql sql

我正在通过 ajax 调用运行此 php 脚本:

<?php

    require_once('myConnectDB.inc.php');

    //add beer to database code
    $uID = $_GET['uID'];
    $uName = $_GET['uName'];
    $fID = $_GET['fID'];
    $fName = $_GET['fName'];

    //data from ajax call: "uID="+reqID+"&uName="+reqName+"&fName="+frID+"&fID="+frName,

    //add above data to database
    $db = new myConnectDB();
    error_log("Successfully created DB");                       


    error_log("uid" . $uID);    
    error_log("uName" . $uName);    
    error_log("fID" . $fID);    
    error_log("fName" . $fName);    

    $query3 = "INSERT INTO friends (userID,userName, friendID, friendName, friend) VALUES ($uID, '$uName' ,  $fID , '$fName' , 1 )";
    $result = $db->query($query3);

    error_log("Ran query [$query3] and got result: " . print_r($result, true));

    ?>

我插入了 error_log 来尝试找出为什么我的查询没有插入到我的数据库中。这是我的日志的输出:

[10-Sep-2012 20:36:54] Successfully created DB
[10-Sep-2012 20:36:54] uid6
[10-Sep-2012 20:36:54] uNametest
[10-Sep-2012 20:36:54] fIDmike
[10-Sep-2012 20:36:54] fName3
[10-Sep-2012 20:36:54] Ran query [INSERT INTO friends (userID,userName, friendID, friendName, friend) VALUES (6, 'test' ,  mike , '3' , 1 )] and got result: 

在查看错误日志时,我发现奇怪的是,我的 php 中的某个地方似乎切换了 fname 和 fID 的值,应该交换这些值。

这很奇怪还是我忽略了一些显而易见的事情?

最佳答案

查看您的 AJAX 调用:

"uID="+reqID+"&uName="+reqName+"&fName="+frID+"&fID="+frName,

这确实看起来好像 fID 会携带 frName,而 fname 将携带 frID!

旁注:您肯定会欣赏类似的 fName

',1); DROP TABLE friends; -- 

会很有趣吗?

关于php - SQL语句切换值并且不插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12361630/

相关文章:

php - session_create_id 和 session_regenerate_id() 有什么区别?

php - 在 PHP 中成功执行查询后 mysql_query 返回 false

MYSQL:如何编写 sql 查询以查找最小值但具有与类别计数相同的值的计数

sql - Postgresql 8.3,不使用索引的简单查询

php - 公共(public)静态最终类变量是否存在

php - 换行符 php 和 html 不工作

php - Doctrine 2,HINT_FORCE_PARTIAL_LOAD 不会获取连接的实体

MySQL 有 if

mysql - 运行查询时没有结果(空白)- 试图从 3 个表中得出结果

sql - PLSQL 从字符串中获取值