Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQLi包装器-奇怪的where子句问题?_Php_Mysqli_Wrapper - Fatal编程技术网

Php MySQLi包装器-奇怪的where子句问题?

Php MySQLi包装器-奇怪的where子句问题?,php,mysqli,wrapper,Php,Mysqli,Wrapper,我目前正在使用joshcam's,它有很多星星和叉子。然而,即使它得到了所有的关注,它似乎缺少了一些功能——或者我误解了如何使用它 当我使用他创建的where子句函数时,我输入的变量周围似乎没有引号。这就像我必须手动将引号添加到变量的开头和结尾,即使它们是预先准备好的语句,这是违反直觉的 我试着联系他,但运气不好,所以我来了 下面是示例代码: $db->where ('name', 'John Doe'); $results = $db->get ('users'); echo $d

我目前正在使用joshcam's,它有很多星星和叉子。然而,即使它得到了所有的关注,它似乎缺少了一些功能——或者我误解了如何使用它

当我使用他创建的where子句函数时,我输入的变量周围似乎没有引号。这就像我必须手动将引号添加到变量的开头和结尾,即使它们是预先准备好的语句,这是违反直觉的

我试着联系他,但运气不好,所以我来了

下面是示例代码:

$db->where ('name', 'John Doe');
$results = $db->get ('users');
echo $db->getLastQuery();
然而,以下是它的输出:

从name=John Doe的用户中选择*

因此,除非我遗漏了什么(并且我仔细地扫描了文档),否则我必须在where函数中的每个变量周围加引号?为什么他没有加入这个,为什么这么多人喜欢这个包装,如果这样一个明显的功能缺失?准备好的声明的全部好处是,它们可以处理引用和所有事情,因此如果我做得正确,这是违反直觉的

编辑:更进一步。在他的“Where”条款bit下的文档中,它说:

或案例


然而,当我将准确的代码放入文件并回显查询时,它仍然没有显示引号。

准备语句的全部目的是避免在查询体中引用和插入值。通过快速查看链接到的代码,它似乎可以安全地生成和执行查询,并使用
replacepholders
方法(仅用于生成带有内联占位符值的查询副本,并将其保存到
\u lastQuery
以供将来参考,而不是执行)是问题所在。
$results
是否实际返回有效结果?如果是,则报告的查询不是它实际运行的查询。项目页面上打开了很多问题,据我所知,没有一个提到需要引用,所以我想知道这是否真的是一个问题?@halfer:问题在于,占位符被替换为不带引号的值。但该方法仅用于填充
lastQuery
属性,而不是实际执行查询。
$db->where ('firstName', 'John'); $db->orWhere ('firstName', 'Peter');
$results = $db->get ('users');
// Gives: SELECT * FROM users WHERE firstName='John' OR firstName='peter'