PHP& MySQL,Parse错误:语法错误,第55行意外T_STRING

时间:2014-02-26 20:41:40

标签: php mysql sql

我试图在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

2 个答案:

答案 0 :(得分:1)

试试这个,

 or die (mysql_error()); 

而不是

or die mysql_error(); 

此外,在更新查询中,timedate列需要用反引号包装,因为这些都是reserved words

`time` = '$update_time', `date` = '$update_date'

答案 1 :(得分:0)

您遇到的错误是解析错误。它与MySQL没有任何关系。错误是您没有将or die的参数放在括号内。

一些大警告:

  1. 您没有转发发送给MySQL的数据。如果您从publicaciones表中提取的任何字段包含',您将收到错误。
  2. 如果用户使用$ _POST ['u'] =“' OR ''='”登录,则select语句将生成每条记录。
  3. 请查看http://no2.php.net/mysql_real_escape_string以解决您的重大安全问题。

    说明性漫画:

    SQL injection http://media.smashingmagazine.com/wp-content/uploads/2010/10/sql.png