使用简单的mySQL查询执行PHP代码时遇到问题


having problems to execute a PHP code with simple mySQL query

我正试图用WHERE子句执行查询,但看起来我检索到的id可能需要从数组转换为其他内容。我是PHP的新手,所以我有点挣扎:

...some previous query here
$sharepoint_id = $data[0];
//returns Array([ID] => a5f415a7-3d4f-11e5-b52f-b82a72d52c35)   
qry = mysql_query("SELECT HostName FROM MSSWireList WHERE id=".$sharepoint_id);     
    $data = array();
    while($rows = mysql_fetch_array($qry))
    {
        $data[] = array(
                    "ID"          => $rows['ID'],
                    "Record"      => $rows['Record'],                                
                    "HostName"    => $rows['HostName']
                    );
    }
    return json_encode($data);  

还尝试了$sharepoint_id=$data[0]->id;感谢

"return Array([ID]=>a5f415a7-3d4f-11e5-b52f-b82a72d52c35)"

这是一个字符串而不是整数。WHERE子句中的变量需要加引号。

WHERE id='".$sharepoint_id."' ");

检查错误会发出语法错误的信号。

or die(mysql_error())添加到mysql_query()

  • 参考编号:http://php.net/manual/en/function.mysql-error.php

您当前的代码对SQL注入是开放的。将mysqli_*与准备好的语句一起使用,或将PDO准备好的报表一起使用


编辑:

您只从查询中选择了HostName列,而没有选择其他两列IDRecord

但是,在遍历循环时,行名区分大小写。

因此,如果您的行的大小写是id,而不是ID,那么这在您的循环中很重要。

  • CCD_ 10和CCD_

旁注:

摘自我已经问过的一条评论:

qry = mysql_query如果这是你的真实代码,那么它缺少qry$

如果是这样的话,错误报告会向您抛出一个未定义的常量qry通知。

  • http://php.net/manual/en/function.error-reporting.php

我不会指责你使用旧的mysql驱动程序而不是mysqli或PDO,或者不使用准备好的语句-我会让其他人来做-但

"...WHERE id = '" . $sharepoint_id['ID'] . "'"

应该做这项工作。