【发布时间】:2015-06-01 07:10:18
【问题描述】:
这就是我目前从数据库中获取的方式:
if ($stmt = $mysqli->prepare ( "SELECT fname,lname from $table_name
where cno >=? LIMIT 50" ))
{
$stmt->bind_param ( "i", $cno);
$stmt->execute ();
$stmt->bind_result ($fname,$lname);
$arrayUsers = array();
while ($stmt->fetch())
{
if (isset ($fname))
{
$arrayUsers[] = array(
"fname" => $fname,
"lname" => $lname);
}
}
$stmt->close ();
}
$mysqli->close ();
而且效果很好。
但是,如果我将选择更改为 SELECT * from... 我的绑定将失败。
这是否意味着如果我有大量字段,我仍然必须指定每个字段,还是有办法使用select *?
----更新---
if (empty($arrayUsers))
{
return 0;
}
else
{
return $array;
}
【问题讨论】:
-
您也应该将
$table_name作为参数传递 -
我写的,在函数参数里,我没有写在这里,因为它只是不必要地占用空间
-
当您说绑定时,您指的是 bind_param 还是 bind_result? bind_result 需要为返回的每一列提供一个变量。确保它与列数匹配
-
我的意思是如何使用
select *而不是select field1,field2等 -
@JohnConde - 他不应该。
SELECT * FROM 'foo'与SELECT * FROM foo不同。
标签: php mysqli prepared-statement