我尝试使用此功能在 PHP 中返回 MySQL 结果。我在 PhpMyAdmin 中运行查询并成功运行。但是当我尝试在 PHP 中运行它时,不会返回任何内容。
我的表的结构如下:
<table>
<tr>
<td>Setting</td>
<td>Value</td>
</tr>
<tr>
<td>Setting</td>
<td>stylesheet.css</td>
</tr>
</table>
功能:
function getData()
{
require 'config.php';
$con = mysql_connect($hostname, $username, $password, $database);
$sql = "SELECT Value FROM Settings WHERE Setting = 'Stylesheet'";
$result = mysql_query($con,$sql);
$row = mysql_result($result, 0);
mysqli_close($con);
return $row;
}
更新:仍无效
function getData()
{
require 'config.php';
$con = mysql_connect($hostname, $username, $password, $database);
$sql = "SELECT Value FROM Settings WHERE Setting = 'Stylesheet'";
$result = mysql_query($sql, $con);
$row = mysql_result($result, 0);
mysql_close($con);
return $row;
}
答案 0 :(得分:2)
mysql_query()
函数不应该是mysql_query($sql, $con);
吗?
关闭不应该是mysql_close($con);
吗?
编辑:我认为这就是它没有返回的原因..由于语法错误,它没有完成该功能。
答案 1 :(得分:1)
您正在混合mysql_*
和mysqli_*
。如果mysql_*
只有一个,则无需指定连接。
Function [ <internal:mysql> function mysql_query ] {
- Parameters [2] {
Parameter #0 [ <required> $query ]
Parameter #1 [ <optional> $link_identifier ]
}
}
如果您不能使用,例如 PDO ,请考虑重构您的功能:
require 'config.php';
$con = mysql_connect($hostname, $username, $password, $database);
function getData()
{
$sql = "SELECT Value FROM Settings WHERE Setting = 'Stylesheet'";
$result = mysql_query($sql);
$row = mysql_result($result, 0);
return $row;
}
在请求结束时关闭连接,您只是进行不必要的连接/断开操作。
答案 2 :(得分:0)
class MySQL {
var $ServerURL='localhost';
var $ServerPort='3306';
var $DataBaseName='test';
var $DataBaseUser='root';
var $DataBasePass='';
public function __construct() {
$this->mysqli = new mysqli($this->ServerURL,$this->DataBaseUser,$this->DataBasePass,$this->DataBaseName,$this->ServerPort);
if (mysqli_connect_errno()) {
printf('failed to connect');
}
else {
}
}
}
$MySQL = new MySQL;
require 'config.php';
class Data extends MySQL {
function getData()
{
$this->sql = "SELECT Value FROM Settings WHERE Setting = 'Stylesheet'";
$result = mysqli_query($this->mysqli, $this->sql);
$this->row = mysql_result($this->result, 0);
return $this->row;
}
$Data = new Data;