无法通过PHP查询MySQL数据库
在PHP代码中,我很容易将记录写入数据库,但由于某种原因,我无法读取任何内容。我的PHP代码是:无法通过PHP查询MySQL数据库,php,mysql,Php,Mysql,在PHP代码中,我很容易将记录写入数据库,但由于某种原因,我无法读取任何内容。我的PHP代码是: $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT * FROM co
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM companies";
if ($conn->query($sql) === TRUE)
{
echo "query success";
while($row = $result->fetch_assoc())
{
echo "ID: " . $row["ID"]. " - Name: " . $row["name"]. "<br>";
}
}
else
{
echo "query failure";
echo "Error: " . $sql . "<br>" . $conn->error;
}
$sql = "INSERT INTO companies (name)
VALUES ('mycompany')";
if ($conn->query($sql) === TRUE)
{
echo "insert success";
}
else
{
echo "insert failure";
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn=newmysqli($servername、$username、$password、$dbname);
//检查连接
如果($conn->connect\u错误){
die(“连接失败:”.$conn->connect\U错误);
}
$sql=“从公司中选择*”;
if($conn->query($sql)==TRUE)
{
回显“查询成功”;
而($row=$result->fetch_assoc())
{
echo“ID:.$row[“ID”]。-Name:.$row[“Name”]。“
”;
}
}
其他的
{
回显“查询失败”;
echo“Error:”.$sql.“
”$conn->Error;
}
$sql=“插入公司(名称)
价值观(“mycompany”)”;
if($conn->query($sql)==TRUE)
{
回应“插入成功”;
}
其他的
{
回显“插入失败”;
echo“Error:”.$sql.“
”$conn->Error;
}
运行浏览器时从浏览器获得的输出为:
查询失败错误:从公司中选择*
插入成功
我在$sql字符串中尝试了撇号、插入符号和引号的变体。我试着在HeidiSQL中运行这个查询,效果很好。知道我哪里出错了吗?我可以尝试缩小问题的根源,对更基本的东西有什么建议吗
谢谢 您尚未将查询结果分配给
$result
变量
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM companies";
$result = $conn->query($sql);
if ($result === TRUE)
{
echo "query success";
while($row = $result->fetch_assoc())
{
echo "ID: " . $row["ID"]. " - Name: " . $row["name"]. "<br>";
}
}
else
{
echo "query failure";
echo "Error: " . $sql . "<br>" . $conn->error;
}
$sql = "INSERT INTO companies (name)
VALUES ('mycompany')";
if ($conn->query($sql) === TRUE)
{
echo "insert success";
}
else
{
echo "insert failure";
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn=newmysqli($servername、$username、$password、$dbname);
//检查连接
如果($conn->connect\u错误){
die(“连接失败:”.$conn->connect\U错误);
}
$sql=“从公司中选择*”;
$result=$conn->query($sql);
如果($result==TRUE)
{
回显“查询成功”;
而($row=$result->fetch_assoc())
{
echo“ID:.$row[“ID”]。-Name:.$row[“Name”]。“
”;
}
}
其他的
{
回显“查询失败”;
echo“Error:”.$sql.“
”$conn->Error;
}
$sql=“插入公司(名称)
价值观(“mycompany”)”;
if($conn->query($sql)==TRUE)
{
回应“插入成功”;
}
其他的
{
回显“插入失败”;
echo“Error:”.$sql.“
”$conn->Error;
}
您尚未将查询结果分配给$result
变量
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM companies";
$result = $conn->query($sql);
if ($result === TRUE)
{
echo "query success";
while($row = $result->fetch_assoc())
{
echo "ID: " . $row["ID"]. " - Name: " . $row["name"]. "<br>";
}
}
else
{
echo "query failure";
echo "Error: " . $sql . "<br>" . $conn->error;
}
$sql = "INSERT INTO companies (name)
VALUES ('mycompany')";
if ($conn->query($sql) === TRUE)
{
echo "insert success";
}
else
{
echo "insert failure";
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn=newmysqli($servername、$username、$password、$dbname);
//检查连接
如果($conn->connect\u错误){
die(“连接失败:”.$conn->connect\U错误);
}
$sql=“从公司中选择*”;
$result=$conn->query($sql);
如果($result==TRUE)
{
回显“查询成功”;
而($row=$result->fetch_assoc())
{
echo“ID:.$row[“ID”]。-Name:.$row[“Name”]。“
”;
}
}
其他的
{
回显“查询失败”;
echo“Error:”.$sql.“
”$conn->Error;
}
$sql=“插入公司(名称)
价值观(“mycompany”)”;
if($conn->query($sql)==TRUE)
{
回应“插入成功”;
}
其他的
{
回显“插入失败”;
echo“Error:”.$sql.“
”$conn->Error;
}
使用mysqli->query()
和SELECT
语句返回mysqli\u结果的实例。它与true不同(==true
),但也不表示错误
此外,$result
未定义
改用这个:
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM companies";
if (($result = $conn->query($sql)) !== FALSE)
{
echo "query success";
while($row = $result->fetch_assoc())
{
echo "ID: " . $row["ID"]. " - Name: " . $row["name"]. "<br>";
}
}
else
{
echo "query failure";
echo "Error: " . $sql . "<br>" . $conn->error;
}
...
$conn=newmysqli($servername、$username、$password、$dbname);
//检查连接
如果($conn->connect\u错误){
die(“连接失败:”.$conn->connect\U错误);
}
$sql=“从公司中选择*”;
if(($result=$conn->query($sql))!==FALSE)
{
回显“查询成功”;
而($row=$result->fetch_assoc())
{
echo“ID:.$row[“ID”]。-Name:.$row[“Name”]。“
”;
}
}
其他的
{
回显“查询失败”;
echo“Error:”.$sql.“
”$conn->Error;
}
...
这只是将您的==TRUE
检查更改为!==错误
MySQLi::query()
在失败时返回布尔值FALSE,在没有结果集的成功查询时返回布尔值TRUE,或者在有结果集的成功查询时返回MySQLi\u结果。
这还使用mysqli->query()
和SELECT
语句将query()的结果分配到$result,返回mysqli\u result
的实例。它与true不同(==true
),但也不表示错误
此外,$result
未定义
改用这个:
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM companies";
if (($result = $conn->query($sql)) !== FALSE)
{
echo "query success";
while($row = $result->fetch_assoc())
{
echo "ID: " . $row["ID"]. " - Name: " . $row["name"]. "<br>";
}
}
else
{
echo "query failure";
echo "Error: " . $sql . "<br>" . $conn->error;
}
...
$conn=newmysqli($servername、$username、$password、$dbname);
//检查连接
如果($conn->connect\u错误){
die(“连接失败:”.$conn->connect\U错误);
}
$sql=“从公司中选择*”;
if(($result=$conn->query($sql))!==FALSE)
{
回显“查询成功”;
而($row=$result->fetch_assoc())
{
echo“ID:.$row[“ID”]。-Name:.$row[“Name”]。“
”;
}
}
其他的
{
回显“查询失败”;
echo“Error:”.$sql.“
”$conn->Error;
}
...
这只是将您的==TRUE
检查更改为!==错误
MySQLi::query()
在失败时返回布尔值FALSE,在没有结果集的成功查询时返回布尔值TRUE,或者在有结果集的成功查询时返回MySQLi\u结果。
这也会将query()的结果分配到$result
中。问题是选择查询成功时将返回mysqli_结果对象,而不是布尔值TRUE。只有当查询失败时,才会返回布尔值FALSE
因此,您应该这样使用它:
$result = $conn->query($sql);
if ($result !== FALSE){
while($row = $result->fetch_assoc())
{
echo "ID: " . $row["ID"]. " - Name: " . $row["name"]. "<br>";
}
}
$result=$conn->query($sql);
如果($result!==FALSE){
而($row=$result->fetch_assoc())
{
echo“ID:.$row[“ID”]。-Name:.$row[“Name”]。“
”;
}
}
问题是SELECT查询成功时将返回mysqli\u结果对象,而不是布尔值TRUE。只有我