我正在转换这个函数:
function user_data($user_id) {
$data = array();
$user_id = (int)$user_id;
$func_num_args = func_num_args();
$func_get_args = func_get_args();
if ($func_num_args > 1) {
unset($func_get_args[0]);
$fields = '`' . implode('`, `', $func_get_args) . '`';
$data = mysql_fetch_assoc(mysql_query("SELECT $fields FROM `users` WHERE `user_id` = $user_id"));
return $data;
}
}
从 mysql 到 mysqli,但是我在理解这个问题并理解为什么我什至没有收到任何错误时遇到了困难,这是我对 mysqli 版本的尝试:
function user_data($user_id) {
global $link;
$data = array();
$user_id = (int)$user_id;
$func_num_args = func_num_args();
$func_get_args = func_get_args();
if ($func_num_args > 1) {
unset($func_get_args[0]);
$fields = '`' . implode('`, `', $func_get_args) . '`';
$result = $link->query("SELECT $fields FROM `users` WHERE `user_id` = $user_id");
if(!$result){
printf("Errormessage: %s\n", $link->error);
}else{
while($data = $result->fetch_assoc()){
print_r($data);
}
}
}
}
非常感谢任何指导或提示。
最佳答案
if ($func_num_args > 1) {
当您只将一个参数传递给 user_data() 函数时,这一行会阻止执行任何包含的代码。此函数旨在传递用户 ID 和列列表,以便从用户数据库表中选择数据。
而不是调用user_data(25);
尝试类似的事情
user_data(25, 'column_name1', 'column_name2');
关于php - mysql转mysqli函数困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21515957/