如何使用 mysqli 查询绑定参数
How to bind params with mysqli query
我现在为一些本应相当简单的事情苦苦挣扎了一个多小时。
我想从我的 mysqli 数据库中获取行,当我 运行 我从 phpmyadmin 查询时,我得到了预期的结果,但是当我 运行 它(with bind_param
)从我的 php 代码我得到 0 个结果:
$sql = $connection->prepare('SELECT (UNIX_TIMESTAMP(start_time))
FROM table1
WHERE UNIX_TIMESTAMP(start_time) >= ?
AND (UNIX_TIMESTAMP(start_time)) <= ?
AND column3 = ?')
or trigger_error($connection->error, E_USER_ERROR);
$sql->bind_param('sss', $value1, $value2, $value3);
$sql->execute() or trigger_error($sql->error, E_USER_ERROR);
if ($sql->num_rows == 0){
echo "yay";
}
您需要存储 MySQLi 准备语句的结果集。按如下方式调整您的代码:
// Execute query
$sql->execute();
// Store result
$sql->store_result();
echo $sql->num_rows;
PHP 文档:http://php.net/manual/en/mysqli-stmt.store-result.php
http://php.net/manual/en/mysqli-stmt.num-rows.php
我现在为一些本应相当简单的事情苦苦挣扎了一个多小时。
我想从我的 mysqli 数据库中获取行,当我 运行 我从 phpmyadmin 查询时,我得到了预期的结果,但是当我 运行 它(with bind_param
)从我的 php 代码我得到 0 个结果:
$sql = $connection->prepare('SELECT (UNIX_TIMESTAMP(start_time))
FROM table1
WHERE UNIX_TIMESTAMP(start_time) >= ?
AND (UNIX_TIMESTAMP(start_time)) <= ?
AND column3 = ?')
or trigger_error($connection->error, E_USER_ERROR);
$sql->bind_param('sss', $value1, $value2, $value3);
$sql->execute() or trigger_error($sql->error, E_USER_ERROR);
if ($sql->num_rows == 0){
echo "yay";
}
您需要存储 MySQLi 准备语句的结果集。按如下方式调整您的代码:
// Execute query
$sql->execute();
// Store result
$sql->store_result();
echo $sql->num_rows;
PHP 文档:http://php.net/manual/en/mysqli-stmt.store-result.php http://php.net/manual/en/mysqli-stmt.num-rows.php