php - 无法使用 PHP 将查询结果插入表中

标签 php mysql sql

我正在尝试将一些信息插入到数据库中的新表中。为此,我从两个表和一个外部参照表中查询信息,然后尝试像平常一样进行插入。这是行不通的。 这是代码,

$query = "select listaA.product_s_desc, category_name, listaA.product_desc, listaA.product_sku 
from listaA, jos_vm_category, jos_vm_product_category_xref 
where listaA.product_id = jos_vm_product_category_xref.product_id 
and  jos_vm_category.category_id = jos_vm_product_category_xref.category_id limit 10";
$result = mysql_query($query);
$row = mysql_fetch_array($result) or die;
do{
        $imagen = 'http://accesoriosazteca.mx/imagesite/'.$row['listaA.product_sku'].".png";
        mysql_query("insert into lista_importat (id, activo, sku, nombre, categoria, descripcion_corta, descripcion_larga, pedidos, mostrar_precio, imagen) 
        values ('$row['listaA.product_id']', '1', '$row['listaA.product_sku']', '$row['listaA.product_s_desc']', '', '$row['listaA.product_s_desc']', '$row['listaA.product_desc']', '0', '0', '$imagen')");
}while($row = mysql_fetch_array($result));

使用上面的代码,我得到一个空白屏幕,并且没有任何内容插入到新表中。有什么想法吗?

最佳答案

如果查询开始...

select listaA.product_s_desc, ...

返回结果集,结果集中的第一列的列名称为 product_s_desc,而不是 listaA.product_s_desc

(在 mysql 命令行客户端中运行查询将演示此行为。)

要引用 $row 中该列的值:

$row['product_s_desc']

请注意,查询不会返回名称为 listaA.product_id 的列。

<小时/>

除了回答您提出的问题之外,还有一些注释:

为了读者的利益,我建议您放弃旧式的连接操作逗号语法,并在其位置使用 JOIN 关键字,并将连接谓词从 WHERE 子句重新定位到 ON 子句。我还建议使用短表别名,并限定所有列引用。例如:

SELECT a.product_s_desc
     , c.category_name
     , a.product_desc
     , a.product_sku
  FROM listaA a
  JOIN jos_vm_product_category_xref r 
    ON r.product_id = a.product_id
  JOIN jos_vm_category c
    ON c.category_id = r.category_id
 ORDER BY 1    
 LIMIT 10

关于php - 无法使用 PHP 将查询结果插入表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24437216/

相关文章:

php - 使用 Varnish 缓存动态页面

php - 是否可以在 PHP 对象的属性中存储一个函数?

php - MySQL 时间戳字段在表单提交时未更新

MySQL : Select all the rows except those having the specified values in columns

mysql - 在 CASE 的结果上使用 LIKE 搜索数据

php - 在这种情况下,如何从具有外键的不同 mysql 表中删除数据?

php - cakephp 中的嵌套路由,关联模型

php - 带有隐私条件检查的查询中的 mysql 查询

mysql - 根据ID对应关系更新表

php - 绑定(bind)到 PDO 查询的参数数量不正确