php的SQL查询与数据库的直接SQL查询
在SQL管理器(sqlite管理器)上执行以下查询 返回预期值,ip地址='aaaa::c30c:0:0:4' 从php代码执行相同的查询,如下所示php的SQL查询与数据库的直接SQL查询,php,sql,Php,Sql,在SQL管理器(sqlite管理器)上执行以下查询 返回预期值,ip地址='aaaa::c30c:0:0:4' 从php代码执行相同的查询,如下所示 $db=open_database(); $query = $db->exec('SELECT ip FROM objects WHERE name="machine4"'); echo $query; 返回值1 我对php的了解有什么闪失吗 p、 s:我确信查询执行时没有错误,它们访问的数据库引用的是同一个元素。只返回受
$db=open_database();
$query = $db->exec('SELECT ip FROM objects WHERE name="machine4"');
echo $query;
返回值1
我对php的了解有什么闪失吗
p、 s:我确信查询执行时没有错误,它们访问的数据库引用的是同一个元素。只返回受影响的行数 所有方法 已解决 首先,我需要一个对象来获取值,为此,exec不会返回一个对象,而是返回前面提到的行数。而来自php的命令有一个要获取的对象 这是应用于SQLITE3数据库的查询的答案:
$db=open_database();
$query = $db->query('SELECT ip FROM objects WHERE name="machine4"');
if(!$query){
echo $db->lastErrorMsg();
} else {
$ip=$query->fetchArray(SQLITE3_ASSOC);
return $ip['ip'];
它返回1,因为您没有使用某种形式的获取循环。或者,我没有抓住这个问题吗?你在寻找能阻止注射的东西还是
aaaa::c30c:0:0:4
?如果是SQL注入预防,请使用准备好的语句。正在使用哪个DB库?什么是mysqli连接对象?我猜,PDO。仅仅阅读文档真的有那么难吗?不确定您使用的是什么DB管理库扩展,但几乎每个数据库都会将结果集返回到query()
或exec()
类型的命令。然后,您需要使用该结果集(即fetch_*()
)从结果集中获取数据。感谢您的快速回答。文档中有答案。我假设执行人员将返回查询,并查看带有插入的示例。对于初学者来说,这是一个基本错误!这个答案最好作为注释(不过,我知道你要到50分才能发表评论)。要想得到一个好的答案,你应该添加一些额外的解释和一个简单的工作示例。
$db=open_database();
$query = $db->query('SELECT ip FROM objects WHERE name="machine4"');
if(!$query){
echo $db->lastErrorMsg();
} else {
$ip=$query->fetchArray(SQLITE3_ASSOC);
return $ip['ip'];