我试图在while循环中运行查询(UPDATE),如下所示:
<?php
session_start();
include("../DB/thedb.php");
$user = $_POST['u'];
$ruta = $_POST['r'];
$select_all_p_from_user = @mysql_query("SELECT * FROM publicaciones WHERE from_user_p = '$user' AND user = '$user'");
while($rows_all_user = @mysql_fetch_array($select_all_p_from_user)){
$update_from_user = $rows_all_user['from_user_p'];
$update_user = $rows_all_user['user'];
$update_foto = $ruta;
$update_nombre = $rows_all_user['nombre'];
$update_comentario = $rows_all_user['comentario'];
$update_time = $rows_all_user['time'];
$update_date = $rows_all_user['date'];
$update_p_photo = $rows_all_user['p_photo'];
$update_to_delete = $rows_all_user['to_delete'];
//Process to update selected ROW
// This is the line 55
$update_current_row = @mysql_query("UPDATE publicaciones SET from_user_p = '$update_from_user', user = '$update_user', foto = '$ruta', nombre = '$update_nombre', comentario = '$update_comentario', time = '$update_time', date = '$update_date', p_photo =
'$update_p_photo', to_delete = '$update_to_delete' WHERE from_user_p = '$user' AND user = '$user'") or die mysql_error(); // End of the line
}
?>
我收到以下错误: 解析错误:语法错误,第55行意外的T_STRING
答案 0 :(得分:1)
试试这个,
or die (mysql_error());
而不是
or die mysql_error();
此外,在更新查询中,time
和date
列需要用反引号包装,因为这些都是reserved words。
`time` = '$update_time', `date` = '$update_date'
答案 1 :(得分:0)
您遇到的错误是解析错误。它与MySQL没有任何关系。错误是您没有将or die
的参数放在括号内。
一些大警告:
'
,您将收到错误。' OR ''='
”登录,则select语句将生成每条记录。请查看http://no2.php.net/mysql_real_escape_string以解决您的重大安全问题。
说明性漫画:
SQL injection http://media.smashingmagazine.com/wp-content/uploads/2010/10/sql.png