Php 通过字符串变量实现MySQL查询的PDO
我将此代码用于我的学校项目,在该项目中,我的程序应该能够自动回复使用开源程序发送给它的查询 我已经成功地创建了一个简单的自动回复与它的帮助下,有人谁是它的知识。然而,我很难通过带有字符串变量的PHP MySQL获取值Php 通过字符串变量实现MySQL查询的PDO,php,mysql,Php,Mysql,我将此代码用于我的学校项目,在该项目中,我的程序应该能够自动回复使用开源程序发送给它的查询 我已经成功地创建了一个简单的自动回复与它的帮助下,有人谁是它的知识。然而,我很难通过带有字符串变量的PHP MySQL获取值 $reqproduct = $db->query("SELECT Crop FROM crops WHERE Crop = '$product'"); $reqprice = $db->query("SELECT Price FROM crops WHERE Crop
$reqproduct = $db->query("SELECT Crop FROM crops WHERE Crop = '$product'");
$reqprice = $db->query("SELECT Price FROM crops WHERE Crop = '$product'");
当然,我失败得很惨
然后我试着学习PHP:PDO,但即使在文档的帮助下,我仍然无法掌握如何使用它的命令
以下是我想做的事情的摘录:
<?php
try{
//test database connection
$db = new PDO('mysql:host=localhost;dbname=gammu;','root');
echo "Connected<p>";}
catch (Exception $e){echo "Unable to connect: " . $e->getMessage() ."<p>";}
//get data from database through decoded message
$product = 'Okra'; //sample decoded message
$sth = $db->prepare('SELECT Crop FROM crops WHERE Crop = :product');
$sth->execute(array(':product' => "{$product}"));
$result = $sth->fetchAll();
foreach ($result as $row) { $reqproduct = $row; break;}
$sth = $db->prepare('SELECT Price FROM crops WHERE Crop = :product');
$sth->execute(array(':product' => "{$product}"));
$result = $sth->fetchAll();
foreach ($result as $row) { $reqprice = $row; break;}
//to be sent to the sender
$message = "The price of $reqproduct is $reqprice/kilo." ;
echo $message;
$db = null;
?>
我想了解$message中的内容的价值,任何帮助都将不胜感激
此外,crops.sql包含3列。即“ID”、“作物”和“价格”。您在这里做错了几件事 首先,SQL可以一次绘制几个列,因此它应该进入一个查询,如下所示:
$crop = $row['Crop'];
$price = $row['Price'];
从作物中选择作物,作物价格='product'
然后,当您执行mysql获取时,您可以像下面这样从行中获取值:
$crop = $row['Crop'];
$price = $row['Price'];
每列映射到数组中的一个元素。要查看它的外观,请尝试:
var_dump($row)代码>在调用fetchAll之后
请参阅此处的获取助理:再次获得其他帮助,以下是更好的代码。:)
您的pdo字符串中应该有一个用户和密码,我只看到用户。要帮助您理解$row
和$result
的内容,请使用var\u dump($result)代码>和变量转储($row)代码>第一个是包含第二个的二维数组。因此,您需要通过数组索引检索值Crop
<代码>$reqprice=$row['Crop']代码>否则,您的代码相当不错。我建议在像foreach
这样的控制结构中使用缩进而不是内联{}
块,并且当您只需要变量$product
@Mihai时,不要使用“{$product}”
:它仍然连接,但我没有更改phpmyadmin:)@Mihai的默认传递密码参数是可选的。MySQL支持无密码连接是的,我的错。我只是在发布问题时复制粘贴了reqprice部分。另外,“WHERE Crop='product'”部分将只查询字符串本身,而不是变量,这也是我在讨论问题PHP:PDO之前遇到的问题;通过单击向下箭头下的轮廓复选标记来执行此操作。我正在编辑你的标题,因为[已解决]不应该在那里。