0

我正在使用这个 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;
    }
}

但是,现在,它只为一个用户插入。当其他用户试图提交他们的排序列表时。它不会添加到表中。你能帮我弄清楚吗?谢谢

4

1 回答 1

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 对象的数据库处理程序。

于 2013-09-11T07:42:38.950 回答