繁体   English   中英

mysqli查询返回false

[英]mysqli query returns false

我正在尝试通过php mysqli在我的数据库上运行选择查询,但是它一直返回false。 我知道这不是查询语法,因为我是直接从phpMyAdmin获取的,实际上它返回了一行。

这是我的PHP:

    //connect
$conn = mysqli_connect($server,$username,$password,$dbname);

//test connection
if(!$conn){
    die("Connection Failed:"." ".mysqli_connect_error());
}

$VendorID = mysqli_real_escape_string($conn,$_GET['vendorID']);
$VendorPass = mysqli_real_escape_string($conn,$_GET['vendorPass']);

$query = $sql = "SELECT * FROM `zobo_vendors` WHERE vendorID = \'L00001\' LIMIT 0, 30 ";
$result = mysqli_query($conn,$query);

print(mysqli_num_rows($result));

if(mysqli_num_rows($result) == 1){
    $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
    if($VendorPass == $row['vendorPass']){
        date_default_timezone_set("Africa/Johannesburg");
        $day = date("d");
        $monthNum  = date("m");
        $dateObj   = DateTime::createFromFormat('!m', $monthNum);
        $monthName = $dateObj->format('M');

        $date = $day." ".$monthName.", ".date("h:i");
        echo "<script>window.AppInventor.setWebViewString('CorrectPass');</script>";
        echo $date;
    }else{
        echo "<script>window.AppInventor.setWebViewString('WrongPass');</script>";
    }
}else{
    echo "<script>window.AppInventor.setWebViewString('NonExist');</script>";
}

if($result === FALSE) {
die("Uh oh something went wrong");
}

mysqli_close($conn);

这是通过phpmyAdmin进行的相同查询

通过phpMyAdmin查询

您可以使用双引号而不是单引号

$query = $sql = "SELECT * FROM `zobo_vendors` WHERE vendorID = \"L00001\" LIMIT 0, 30 ";

实际上,这您的查询语法。
您直接从phpmyadmin进行了查询,如果将其放在引号中会起作用 -但是您将其放在引号中。

代替:

“ SELECT * FROM zobo_vendors vendorID = \\'L00001 \\'LIMIT 0,30”

做:

'SELECT * FROM zobo_vendors WHERE vendorID = \\'L00001 \\'LIMIT 0,30'

第一个无效,因为在双引号字符串中,单引号不需要转义。 因此,反斜杠字符不会被删除。

在phpmyadmin中,查询文本为:

SELECT * FROM zobo_vendors WHERE vendorID ='L00001'LIMIT 0,30

您的查询文字实际上是这样的:

SELECT * FROM zobo_vendors WHERE vendorID = \\'L00001 \\'LIMIT 0,30

它带反斜杠进入MySQL!


或者,您可以删除反斜杠:

“选择*从zobo_vendors vendorID ='L00001'限制0,30”


ABS Rana的答案是另一个有效的选择。

暂无
暂无

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

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