繁体   English   中英

共享主机上的空白MySQL错误

[英]Blank MySQL error on shared hosting

我正在对mysql,php等进行一些学习。 我使用的是共享托管计划,因此从设置更改的角度来看非常有限。

我试图通过PHP运行一个简单的mysql select命令,但我得到的只是一个空白错误

<?php
$typeID = $_GET['tid'];
//variables for the database server
$server = "localhost";
$user = "codingma_rbstock";
$pwd = "M@nL%V{%RI+h";
$db = "codingma_rbstock";

//variables for the database fields
$itemNo;
$itemNm;
$itemDesc;
$buyPr;
$sellPr;
$quan;
$dept;

//database connection
//create connection
$conn = new mysqli($server, $user, $pwd, $db);

//if the connection fails throw an error.
if ($conn->connect_error){
    die("Connection Failed: " . $conn->connect_error);
}

echo "Welcome to " . $typeID . "<br>";

$sql = "select ITEM_NAME from stock where ITEM_NO='00001'";

if ($conn->query($sql) === TRUE){
    $res = $conn->query($sql);
        if ($res->num_rows > 0){
            echo "success";
        }

}else{
    echo "Error: " .$sql . "<br>" . $conn->error;
}

echo $res;

?>

我检查了一下,看来好像可以正常连接到数据库了(我更改了一些帐户详细信息,以查看是否抛出了另一个错误并且确实如此)。

我确定我在这里完全看不到某些东西! 下面是错误的文本输出;

错误:从ITEM_NO ='00001'的库存中选择ITEM_NAME

谢谢你的帮助。

你的问题在这一行

if ($conn->query($sql) === TRUE){

您正在执行变量类型检查(===),则比较的结果将始终失败,因为只要您在表中有数据并且查询不会失败,则$conn->query($sql)将不返回布尔值

mysqli :: query文档说:

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

您在此处使用SELECT,因此成功的结果将不是布尔值

尝试切换到

if ($conn->query($sql) == TRUE){

甚至最好将其完全删除

EDIT

对于该部分代码,更好的方法是:

$res = $conn->query($sql);
        if ($res->num_rows > 0){
            echo "success";
        }

if ($res === false) {
    echo "Error: " .$sql . "<br>" . $conn->error;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM