我试图从 mysql 中选择一个值 - 但它不起作用:
public function doStuff($posted_name){
$result = mysql_query("SELECT id FROM people WHERE people_name = $posted_name");
$singleValue = mysql_fetch_object($result);
}
posted_name, people_name is TEXT, id is INT
我正在发布一个 $posted_name ,我将其与表 people 中的列 people_name 进行比较,然后选择列“id”...
我想将此 id 存储为值,在这里我尝试将其存储在 $singleValue 中...但是它不起作用 - 是否有任何错误?
已解决:看评论
编辑:
我将一些代码更改为 mysqli 以进行测试-但现在我遇到了一些错误:
我的代码如下:
private $db;
// constructor
function __construct() {
include_once './db_connect.php';
// connecting to database
$db = new DB_Connect();
$this->db = $db->connect();
}
. . . . .
$result = this->db->query("INSERT INTO.....
上面一行出现错误... 解析错误:语法错误,意外的 '->' (T_OBJECT_OPERATOR)...
我做错了什么
我的 db_connect.php
class DB_CONNECT {
private $db;
// constructor
function __construct() {
// connecting to database
$this->connect();
}
/**
* Function to connect with database
*/
function connect() {
// import database db variables
require_once __DIR__ . '/db_config.php';
// Connecting to mysql database
$this->db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD);
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Selecing database
// returing connection cursor
return $this->db;
}
}
最佳答案
您需要在 $posted_name 中添加单引号,例如 '$posted_name'。你应该知道 mysql_fetch_object() 是如何工作的以及它返回什么。
mysql_fetch_object() 将结果行作为对象获取。它返回一个对象,该对象的属性与获取的行相对应,并将内部数据指针向前移动。
我已经编辑了你的代码,看起来像这样......
public function doStuff($posted_name){
$result = mysql_query("SELECT id FROM people WHERE people_name = '$posted_name'");
if($result){
while ($row = mysql_fetch_object($result)){
$id = $row->id;
echo $id;
}
}
}
关于php - 从 mysql 中选择单值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27402071/