我正在使用这个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;
}
}
但是,现在,它只为一个用户插入。当其他用户尝试提交其排序列表时。它不会添加到表中。你能帮我弄清楚吗?谢谢
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 对象的数据库处理程序。