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