拖放排序到MySQL中的INSERT

时间:2013-09-11 07:33:53

标签: php jquery mysql ajax sorting

我正在使用这个PHP MySQL从我的数据库中显示一个可排序的列表。

<?php                           
     $query  = "SELECT * FROM question_four ORDER BY recordListingID ASC";
     $result = mysql_query( $query );           
     while( $row = mysql_fetch_array( $result, MYSQL_ASSOC ) ) {
?>
        <li id="recordsArray_<?php echo $row['recordID']; ?>"><?php echo $row['recordText']; ?></li>
<?php 
     } 
?>

我尝试使用以下代码将其插入新表中,而不是更新同一个表:

$action = mysql_real_escape_string($_POST['action']);
$updateRecordsArray = $_POST['recordsArray'];
if ( $action == "updateRecordsListings" ) {
    $listingCounter = 1;
    foreach ( $updateRecordsArray as $recordIDValue ) {
        $query1 = "INSERT into answers_questionfour(id,recordListingID,recordID,recordText) values ('.$user_fbid.','.$listingCounter.', '.$recordIDValue.','.$recordText.')";
        mysql_query( $query1 ) or die('Error, insert query failed');
        $listingCounter = $listingCounter + 1;
    }
}

但是,现在,它仅为一个用户插入。当其他用户尝试提交他们的排序列表时。它没有添加到表中。你能帮我解决一下吗?感谢

1 个答案:

答案 0 :(得分:0)

Dinesh对安全问题肯定是正确的。但无论如何,你需要用引号(')包围你的数据值(特别是字符串类型!)但是忽略连接运算符(.),因为整个sql字符串已被"包围:

 $sql="INSERT into answers_questionfour(id,recordListingID,recordID,recordText) 
   values ('$user_fbid','$listingCounter', '$recordIDValue','$recordText')"

在PDO语法中,这将是

$sql="INSERT into answers_questionfour(id,recordListingID,recordID,recordText) 
   values (?,?,?,?)";
$sth = $dbh->prepare($sql);
$sth->execute(array($user_fbid,$listingCounter, $recordIDValue,$recordText));

$dbh是分配给PDO对象的数据库处理程序。