mySQL Wordpress 中的查询
mySQL Queries in Wordpress
我有一个名为 stock 的 mySQL 数据库 table,它保存了待售物品的库存记录。使用 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";
}
函数属性中的$cat
是我查询的商品目录号,输出为"There are 2 bears".
我把它放在 Wordpress 中,但网页挂了。然后通过 Google 搜索,我在 designmodo.com 找到了 Wordpress 使用的 $wpdb 对象。因此,我也压缩了一些代码,将其更改为...
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";
}
现在输出为 "There are bears"(缺少 $stock
值)。我一直在做大量的 Google 搜索以找到我所在的位置,但我在理解它时遇到了问题。我哪里错了?
尝试:
function QueryStock($cat) {
$query = "SELECT * FROM stock WHERE catno = " . $cat;
global $wpdb;
$row = $wpdb->get_row($query);
$catno = $row->catno; //Column name in table
$itemname = $row->itemname; //Column name in table
$price = $row->price; //Column name in table
$stock = $row->stock; //Column name in table
echo "There are " . $stock . " bears";
}
此外,我建议不要使用 "SELECT *"。尝试仅查询使用的列。这对性能更好。
编辑:看到一个打字错误。您的代码中有“$catno == $row...”。你应该只使用一个 "="
尤里卡!!!,
经常漏掉一些东西,在MySQL查询中。
查询应该是SELECT * FROM stock WHERE catno = '$cat'
使得$query = "SELECT * FROM stock WHERE catno = '$cat'";
我已经接受了@eckes 和@rickonline 指出的 "SELECT *" 问题,进行了单独的查询并使用了 $wpdb->get_var()
.
工作编码是..
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";
}
我有一个名为 stock 的 mySQL 数据库 table,它保存了待售物品的库存记录。使用 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";
}
函数属性中的$cat
是我查询的商品目录号,输出为"There are 2 bears".
我把它放在 Wordpress 中,但网页挂了。然后通过 Google 搜索,我在 designmodo.com 找到了 Wordpress 使用的 $wpdb 对象。因此,我也压缩了一些代码,将其更改为...
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";
}
现在输出为 "There are bears"(缺少 $stock
值)。我一直在做大量的 Google 搜索以找到我所在的位置,但我在理解它时遇到了问题。我哪里错了?
尝试:
function QueryStock($cat) {
$query = "SELECT * FROM stock WHERE catno = " . $cat;
global $wpdb;
$row = $wpdb->get_row($query);
$catno = $row->catno; //Column name in table
$itemname = $row->itemname; //Column name in table
$price = $row->price; //Column name in table
$stock = $row->stock; //Column name in table
echo "There are " . $stock . " bears";
}
此外,我建议不要使用 "SELECT *"。尝试仅查询使用的列。这对性能更好。
编辑:看到一个打字错误。您的代码中有“$catno == $row...”。你应该只使用一个 "="
尤里卡!!!,
经常漏掉一些东西,在MySQL查询中。
查询应该是SELECT * FROM stock WHERE catno = '$cat'
使得$query = "SELECT * FROM stock WHERE catno = '$cat'";
我已经接受了@eckes 和@rickonline 指出的 "SELECT *" 问题,进行了单独的查询并使用了 $wpdb->get_var()
.
工作编码是..
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";
}