我的代码从 MySQL 中的一行中获取多个字段,通过 mysql_fetch_array() 创建一个 MYSQL_ASSOC 数组,并将其格式化为 JSON 以返回浏览器中的 Javascript。这部分有效。我想另外插入一个 PHP 生成的变量及其值来描述时间。此变量存在一个字段,并且时间戳代码在另一个脚本中工作以插入原始第一篇文章的时间。在这个脚本中,我希望该值是第二个 PHP 更新脚本运行的时间,而不是数据库中的原始时间值。尽管进行了很多尝试,但我无法让最后一部分工作。以下是相关代码:
$timeStamp = date("Ymd");
$userIP = $_SERVER['REMOTE_ADDR'];
$postingID = "$timeStamp-$userIP-u";
$latestUpdateID = str_replace(".", "", "$postingID")
//some pre-processing to make $fields_sql, an array to use in the SELECT
$fetch = mysql_query("SELECT $fields_sql FROM residence WHERE propertyID = '$propertyID'");
if( mysql_num_rows( $fetch ) ){
while ( $row = mysql_fetch_array( $fetch, MYSQL_ASSOC ) ){
for( $i = 0; $i < count( $propertyFields ); $i++ ) {
$row_array[ $propertyFields[$i] ] = mysql_real_escape_string( $row[ $propertyFields[$i] ] );
}
array_push( $return_arr,$row_array );
//get [{"city":"Rochester","streetAddress":"100 Main", etc.}]
}
$propertyFields[ 'latestUpdateID' ] = $latestUpdateID; //get "latestUpdateID":""
array_push( $return_arr,$propertyFields[ 'latestUpdateID' ] ); //pushed in but no value
//want [{"city":"Rochester","streetAddress":"100 Main", "latestUpdateID":"20131107", etc.}]
} else { die('<li class=error>Ooops</li> }
echo json_encode( $return_arr );
两条评论: 1. 如您所见,查询仅返回 1 行。可能不需要while循环,但我不知道如何以其他方式进行。也可以解决问题的建议将不胜感激。2. 是的,我知道 mysql_ 系列命令已被弃用。我有其中的几个,我的下一个项目是将它们全部转换为 PDO,但目前,我对 PDO 的了解远少于这些东西。