- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
<分区>
我需要根据用户输入动态构建 SQL 语句和参数。 sql 语句的长度和参数的数量根据用户输入而变化。我正在尝试使用 this tutorial并将其应用于我的代码。这是代码:
$query = "SELECT p.*, s.*
FROM product p
INNER JOIN product_shop ps
ON ps.p_id = p.p_id
INNER JOIN shop s
ON s.s_id = ps.s_id
WHERE s.country = ?";
$a_params[] = $place['country'];
$a_param_type[] = "s";
// prepare and bind
$param_type = '';
foreach ($place as $key => $value) {
if ($key === "country") {
continue;
}
$query .= " and s.$key = ?";
$a_params[] = $value;
$a_param_type[] = "s";
}
/* Prepare statement */
$stmt = $conn->prepare($query);
if($stmt === false) {
trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->errno . ' ' . $conn->error, E_USER_ERROR);
}
$a_params[] = $a_param_type;
/* use call_user_func_array, as $stmt->bind_param('s', $param); does not accept params array */
call_user_func_array(array($stmt, 'bind_param'), $a_params);
/* Execute statement */
$stmt->execute();
$meta = $stmt->result_metadata();
我知道 $place['country']
将始终被填充。 sql语句是正确的。它是:
"SELECT p.*, s.* \n FROM product p \n INNER JOIN product_shop ps \n ON ps.p_id = p.p_id \n INNER JOIN shop s \n ON s.s_id = ps.s_id \n WHERE s.country = ? and s.suburb = ? and s.city = ? and s.province = ?"
不要介意“\n”字符,它们对 sql 语句没有影响。
在:
call_user_func_array(array($stmt, 'bind_param'), $a_params);
$a_params
的值为:
0:"New Zealand"
1:"Grey Lynn"
2:"Auckland"
3:"Auckland"
4:array(4)
0:"s"
1:"s"
2:"s"
3:"s"
在:
$meta = $stmt->result_metadata();
$meta 的值变为:
current_field:0
field_count:13
lengths:null
num_rows:0
type:1
表示没有从数据库中选择任何行。我已经在数据库上手动执行了这个 sql,它返回了行。我的代码有什么问题,导致它没有从数据库返回任何行?
编辑: 我看到了 this answer说要将“ssss”放在 $params
的开头所以我这样做了并在 $stmt
对象中得到了这个错误:
errno:2031
error:"No data supplied for parameters in prepared statement"
error_list:array(1)
propertyNode.hasAttribute is not a function
第一次尝试处理这个 call_user_func_array,但有些东西不起作用,因为我没有收到函数的响应,我会遗漏什么? function _a_($id, $text) {
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
在组合数组时遇到了一些问题......这可行: $un[0] = array("0:0:0"); //$un[1] = array("1:1:1"); $flat = call
当函数包含引用参数时,下面的函数会产生错误,例如: function test(&$arg, &$arg2) { // some code } 现在我不能对上面的函数使用call_user_fun
我正在使用 mysqli 和准备好的语句为我的数据库编写一个简单的搜索引擎,我目前正在使用 call_user_func_array 来动态创建我的查询。我的问题是:使用 mysqli 是否有更快或更
我在 stack 上阅读了其他答案关于使用 call_user_func_array 与仅调用函数有关,但我仍然无法收集何时应该使用前者。我知道当您不知道传递了多少个参数时,您可能想使用 call_u
本周早些时候我看到了一段代码(不幸的是,我无法检索),我很好奇作者是如何实现 __call() 魔法方法的。代码如下所示: class Sample { protected function
我目前正在构建一个数据库处理程序。在 Firebird 数据库之上运行 PHP 5.4.16。 当我创建了准备好的语句后,我需要使用参数执行 SQL。我做了这个功能: private function
这个问题在这里已经有了答案: How to call the constructor with call_user_func_array in PHP (1 个回答) 关闭7年前。 我已经搜索了许多
这个问题在这里已经有了答案: How to call the constructor with call_user_func_array in PHP (1 个回答) 关闭7年前。 我已经搜索了许多
我使用的是 PHP 5.4.25。采取以下代码: 'John', 'last_name'=>'Doe']); call_user_func_array('fails', ['first_name'=>
这个问题已经有答案了: Sort array using array_multisort() with dynamic number of arguments/parameters/rules/dat
目前我正在使用: call_user_func( $func, $_POST['a'],$_POST['b'],$_POST['c'],$_POST['d'],$_POST['
我正在构建一个模板系统,但遇到了动态调用函数的问题。 当我尝试以下操作时: $args = array( 4, 'test' => 'hello', 'hi' ); 你知道..
PHP 的 call_user_func_array 在 Python 中是否有等效项? ? 最佳答案 以*开头的数组调用函数: function(*array) 关于Python 中的 PHP ca
我今天遇到了一个有趣的问题。我们有一个利用 Zend Frameworks 缓存功能的应用程序。对此应用程序的请求通常使用以下行调用工厂方法 $result = call_user_func_arr
这个问题在这里已经有了答案: Build SELECT query with dynamic number of LIKE conditions as a mysqli prepared state
我有一个方法,简化后看起来像这样: class Foo { public function bar($id) { // do stuff using $this, error occ
如何记录 call_user_func_array 中发生的 fatal error ?它位于作为守护进程运行的 CLI 脚本中。我想在发生错误时记录日志,但它总是抛回错误消息。 我尝试过但无法实现的
当使用 call_user_func_array() 我想通过引用传递一个参数。我该怎么做。例如 function toBeCalled( &$parameter ) { //...Do So
我是一名优秀的程序员,十分优秀!