我似乎对这段代码有问题,我试图使用mysqli_connect()和mysqli_query()查询数据库,但代码没有返回mysqli对象,我不知道为什么。我自己编写了代码来格式化查询,我确信没有失败,因为我每次都在检查:(我使用XAMPP,使用localhost进行测试),可能是安装的php已经损坏了吗??)
<?php
//error_reporting(~E_ALL);
require 'errorReporting.php';
$mysqli_host = 'localhost';
$mysqli_user = 'root';
$mysqli_pass = NULL;
$mysqli_name = 'gsistel';
$mysqli_link = mysqli_connect($mysqli_host, $mysqli_user, $mysqli_pass, $mysqli_name) or die('SQL ERROR COULD NOT CONNECT TO DB');
mysqli_select_db($mysqli_link, $mysqli_name) or die('SQL ERROR COULD NOT SELECT DB');
function fQuery($table, $operation, $selectionColumns, $iouValues, $whereColumns, $whereValues, $orderBy, $orderClause) {
$operation = strtoupper($operation);
switch($operation) {
case 'SELECT':
global $mysqli_link;
$mysqli_query = 'SELECT ';
$selection = '';
for($i = 0; $i < count($selectionColumns); $i++) {
if(count($selectionColumns) == 1) {
$selection = $selectionColumns[0];
}else if($i == count($selectionColumns)-1) {
$selection = $selection . $selectionColumns[$i];
}else {
$selection = $selection . $selectionColumns[$i] . ', ';
}
}
$mysqli_query = $mysqli_query . $selection . ' FROM ' . $table . ' ';
$whereSelection = '';
if($whereColumns != null && (count($whereColumns == count($whereValues)))) {
$mysqli_query = $mysqli_query . ' WHERE ';
for($i = 0; $i < count($whereColumns); $i++) {
if(count($whereColumns) == 1) {
$whereSelection = $whereColumns[0] . '=\'' . $whereValues[0] . '\'';
}else if($i == 0){
$whereSelection = $whereSelection . $whereColumns[$i] . '=\'' . $whereValues[$i] . '\'';
}else {
$whereSelection = $whereSelection . ' AND ' . $whereColumns[$i] . '=\'' . $whereValues[$i] . '\'';
}
}
$mysqli_query = $mysqli_query . $whereSelection . ' ';
}
if($orderBy != null) {
$mysqli_query = $mysqli_query . ' ORDER BY ' . $orderClause;
}
return $mysqli_result = mysqli_query($mysqli_link, $mysqli_query) or die(reportFriendlyError('SQL SELECT', 'ERROR: SQL QUERY FAILED<br>' . $mysqli_query));
break;
case 'INSERT':
$mysqli_query = 'INSERT INTO ' . $table . ' VALUES (';
for($i = 0; $i < count($iouValues); $i++) {
if($i == count($iouValues)-1) {
if(strtoupper($iouValues[$i]) == 'NULL') {
$mysqli_query = $mysqli_query . $iouValues[$i] . ')';
}else {
$mysqli_query = $mysqli_query . '\'' . $iouValues[$i] . '\'' . ')';
}
}else {
if(strtoupper($iouValues[$i]) == 'NULL') {
$mysqli_query = $mysqli_query . $iouValues[$i] . ', ';
}else {
$mysqli_query = $mysqli_query . '\'' . $iouValues[$i] . '\'' . ', ';
}
}
}
return $mysqli_query;
//TODO: Executa query
break;
case 'UPDATE':
$mysqli_query = 'UPDATE ' . $table . ' SET ';
for($i = 0; $i < count($selectionColumns); $i++) {
if($i == count($selectionColumns)-1) {
$mysqli_query = $mysqli_query . $selectionColumns[$i] . '=\'' . $iouValues[$i] . '\'';
}else {
$mysqli_query = $mysqli_query . $selectionColumns[$i] . '=\'' . $iouValues[$i] . '\', ';
}
}
if($whereColumns != null && (count($whereColumns) == count($whereValues))) {
$mysqli_query = $mysqli_query . ' WHERE ';
for($i = 0; $i < count($whereColumns); $i++) {
if($i == count($whereColumns)-1) {
$mysqli_query = $mysqli_query . $whereColumns[$i] . '=\'' . $whereValues[$i] . '\'';
}else {
$mysqli_query = $mysqli_query . $whereColumns[$i] . '=\'' . $whereValues[$i] . '\', ';
}
}
}
return $mysqli_query;
//TODO: Execute query
break;
case 'DELETE':
$mysqli_query = 'DELETE FROM ' . $table . ' WHERE ';
for($i = 0; $i < count($whereColumns); $i++) {
if($i == count($whereColumns)-1) {
$mysqli_query = $mysqli_query . $whereColumns[$i] . '=\'' . $whereValues[$i] . '\'';
}else {
$mysqli_query = $mysqli_query . $whereColumns[$i] . '=\'' . $whereValues[$i] . '\', ';
}
}
return $mysqli_query;
//TODO: execute query
break;
default:
return false;
break;
}
}
?>
我用这里的代码来测试:mysqli_query()返回的不是false,而是mysqli对象。我还得到了警告:warning:mysqli_fetch_array()期望参数1是mysqli_result,布尔值在第19行的C:\xampp\htdocs\Guardian2\login.php中给出
<?php
require 'connect.php';
$mysqli_object = fQuery('users', 'SELECT', array('username'), null, array('username') , array('admin'), null, null);
if($mysqli_object === false) {
echo 'FAIL';
}
if(is_object($mysqli_object)) {
echo 'IS OBJECT';
}else {
echo 'IS NOT OBJECT';
}
$user = '';
while($row = mysqli_fetch_array($mysqli_object)) {
echo $user = $row['username'];
}
?>
替换:
return $mysqli_result = mysqli_query($mysqli_link, $mysqli_query) or die(reportFriendlyError('SQL SELECT', 'ERROR: SQL QUERY FAILED<br>' . $mysqli_query));
与:
$mysqli_result = mysqli_query($mysqli_link, $mysqli_query) or die(reportFriendlyError('SQL SELECT', 'ERROR: SQL QUERY FAILED<br>' . $mysqli_query));
return $mysqli_result;
在您的案例中“选择”
分支。
下面也是我的日志猫详细信息 09-21 16:13:25.563:D/AbsListView(26541):Get MotionRecognitionManager 09-21 16:13:25.568:D/AndroidRuntime(26541):关闭VM 09-21 16:13:25.573:W/DalvikVM(26541):ThreadId=1:线程退出未捕获异常(组=0x411372A
假设每种颜色总是有一辆车。所以我总是在找一辆车,不多也不少。 如何确保始终有一个对象被找到并返回?
我一直在研究猫鼬文档,但我找不到一种方法来实现我想要做的事情。考虑一个MangGDB用户集合。还可以考虑一个包含DB集合中所有字段的蒙古人用户模式。 现在,我想登录到控制台,所有用户,但属性已更改。有点像: 用户。图例(): 给定的异步类型。find()函数我不确定这是否可以实现。我来自C#和PHP背景,只处理关系数据库,这可以通过在用户类中使用只返回所需值的函数轻松实现。 能做到吗?!
我使用mysql存储过程来检索对象列表。这可能吗? 我在看这篇文章 问题: > 如何使用结果集检索select语句中的对象列表? 如何将结果集映射到对象列表? CREATE DEFINER=@PROCEDURE(ININT,OUTINT,OUTINT,OUTVARCHAR(50),OUTVARCHAR(50),OUTFLOAT 内部连接(从rate中选择aid,r.rate,re.country_
问题内容: 我在我的项目中使用spring data JPA。我正在玩数百万条唱片。我有一个要求,我必须获取各种表的数据并构建一个对象,然后将其绘制在UI上。现在如何实现我的Spring数据存储库。我读过它可以通过命名本机查询来实现。 如果命名的本机查询未返回实体或实体列表,则可以使用@SqlResultSetMapping批注将查询结果映射到正确的返回类型。 但是,当我尝试使用它时,将采用另一个
我正在我的项目中使用Spring Data JPA。我在玩数百万张唱片。我有一个要求,我必须为各种表获取数据,构建一个对象,然后在UI上绘制它。现在如何实现我的spring数据仓库。我读过,它可以通过命名的本机查询来实现。 如果命名的本机查询没有返回实体或实体列表,我们可以使用@SqlResultSetMapping注释将查询结果映射到正确的返回类型。 但是当我试图使用时,它会使用另一个Entit