我有一个名为stock的MySQL数据库表,它保存着待售商品的库存记录。当使用PHP查询数据库时,我没有问题,但当我尝试通过WordPress进行查询时,它不起作用。
我的PHP如下
// Query the stock level
function QueryStock($cat) {
$query = "SELECT * FROM stock";
$result = mysql_query($query);
if (!$result) die ("Database access failed: " . mysql_error());
$rows = mysql_num_rows($result);
for ($j = 0 ; $j < $rows ; ++$j)
{
$row = mysql_fetch_row($result);
if ($row[0] == $cat) {
$catno=$row[0];
$supplier=$row[1];
$itemname=$row[2];
$category=$row[3];
$price=$row[4];
$stock=$row[5];
}
}
mysql_close($db_server);
echo "There are " . $stock . " bears, the price of each bear is £" . $price;
}
$cat
函数属性中是我正在查询的项目的目录号字符串,输出为“有2个熊,每个熊的价格为4.99英镑”。
我把这个放在WordPress里,网页就挂了。通过谷歌搜索,我发现WordPress在designmodo.com. 因此,通过一些代码压缩,我将其更改为。。。
function QueryStock($cat) {
$query = "SELECT * FROM stock WHERE catno = " . $cat;
global $wpdb;
$row = $wpdb->get_row($query, ARRAY_N);
$catno == $row[0];
$itemname = $row[2];
$price = $row[4];
$stock = $row[5];
echo "There are " . $stock . " bears, the price of each bear is £" . $price;
}
现在的产出是“有熊,每只熊的价格是%”(缺少
$stock
和
$price
值)。
作为解决方法,我可以使用以下方法
function QueryStock($cat) {
$query1 = "SELECT catno FROM stock WHERE catno = \'$cat\'";
$query2 = "SELECT itemname FROM stock WHERE catno = \'$cat\'";
$query3 = "SELECT price FROM stock WHERE catno = \'$cat\'";
$query4 = "SELECT stock FROM stock WHERE catno = \'$cat\'";
global $wpdb;
$catno = $wpdb->get_var($query1);
$itemname = $wpdb->get_var($query2);
$price = $wpdb->get_var($query3);
$stock = $wpdb->get_var($query4);
echo "There are " . $stock . " bears, the price of each bear is £" . $price;
}
这是可行的,但它并不能解决我处理MySQL查询的数组输出的问题。
我一直在做大量的谷歌搜索来找到我现在的位置,但我在理解它时遇到了问题。我哪里做错了?
最合适的回答,由SO网友:Chris Rogers 整理而成
多亏了@Milo的帮助,我才发现了这些错误
@Milo对catno的查询指出了我第一次查询catno时的错误,我还注意到$catno == $row[0];
应该是什么时候$catno = $row[0];
最终编码为
function QueryStock($cat) {
$query = "SELECT * FROM stock WHERE catno = \'$cat\'";
global $wpdb;
$row = $wpdb->get_row($query, ARRAY_N);
$catno = $row[0];
$itemname = $row[2];
$price = $row[4];
$stock = $row[5];
echo "There are " . $stock . " bears, the price of each bear is £" . $price;
}