-8
$sql = mysql_query("SELECT * FROM prestamos LEFT JOIN libros  on  prestamos.codlibros = libros.cod_libros where id_usuariospr ={$_SESSION['idusuarios']}");
$row = mysql_num_rows($sql);

//$datos = mysql_fetch_array($sql);
while($datos = mysql_fetch_array($sql)){ 

    $tit = $datos['titulo'];
    $aut = $datos['autor'];
    $edit = $datos['editorial'];
    $isbn = $datos['isbn'];
    $color = $datos['color'];                
    $fechaP = $datos['fecha_prest'];
    $fecha = $datos['fecha_entrega'];
    $libro = $datos['codlibros'];

    $query = "INSERT INTO historial(titulo_his, autor_his, editorial_his, isbn_his, color_his, fecha_inicio_his, fecha_final_his, idusuarios_his, codlibros_his)
                                                    VALUES($tit, $aut, $edit, $isbn, $color, $fechaP, $fecha, {$_SESSION['idusuarios']}, $libro)";

    mysql_query($query) or die(mysql_error());
}

我试图找到错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的 'del Web, Creative Commons, 123213, rojo, 2013-11-04, 2013-11-05, 127, 12)' 附近使用正确的语法

拜托,你能帮帮我吗?我找不到错误。

4

3 回答 3

0

您不需要在查询中的 php 变量附近添加花括号。另一件事是,如果值是字符串类型,则将其用作 - '.$phpvariable。

于 2013-11-06T08:30:09.633 回答
0

用引号将您的查询:

$query = "INSERT INTO historial(`titulo_his`, `autor_his`, `editorial_his`, `isbn_his`, `color_his`, `fecha_inicio_his`, `fecha_final_his`, `idusuarios_his`, `codlibros_his`)
                                                                VALUES('{$tit}', '{$aut}', '{$edit}', '{$isbn}', '{$color}', '{$fechaP}', '{$fecha}', '{$_SESSION['idusuarios']}', '{$libro}')";

问题是您试图插入字符串而不将它们括在引号中,因此查询将失败

PS:不要使用mysql_ * 扩展已弃用的函数。

PS2:字段名称的反引号不是必需的,但我喜欢它:)

于 2013-11-06T07:44:12.723 回答
0

不要在查询中使用 php 变量。

<?php
            $sql = mysql_query("SELECT * FROM prestamos LEFT JOIN libros  on  prestamos.codlibros = libros.cod_libros where id_usuariospr ={$_SESSION['idusuarios']}");
            $row = mysql_num_rows($sql);

if(isset($_SESSION['idusuarios']))
    $sessionvar=$_SESSION['idusuarios'];


        while($datos = mysql_fetch_array($sql)){ 

                $tit = $datos['titulo'];
                $aut = $datos['autor'];
                $edit = $datos['editorial'];
                $isbn = $datos['isbn'];
                $color = $datos['color'];                
                $fechaP = $datos['fecha_prest'];
                $fecha = $datos['fecha_entrega'];
                $libro = $datos['codlibros'];

                $query = "INSERT INTO historial(titulo_his, autor_his, editorial_his, isbn_his, color_his, fecha_inicio_his, fecha_final_his, idusuarios_his, codlibros_his)
                                                                VALUES($tit, $aut, $edit, $isbn, $color, $fechaP, $fecha, $sessionvar, $libro)";

                      mysql_query($query) or die(mysql_error());
          }                 

            ?>

同样对于字符字段值,将它们括在引号中。

于 2013-11-06T07:44:45.223 回答