我得到一个错误
代码如下:
<?php
//db connection
$dbserv="localhost:3306";
$dbuser="root";
$dbpass="firepower";
$dbname="account_data";
$db_connect=new mysqli($dbserv, $dbuser, $dbpass, $dbname);
if($db_connect->connect_errno){
die("Error trying to connect to database");
}
session_start();
if(isset($_SESSION['current_page'])){
$prev_page=$_SESSION['current_page'];
$_SESSION['current_page'] = basename($_SERVER['PHP_SELF']);
}
else{
$prev_page='';
}
if(!isset($_SESSION['email'])){
header('location:'.'index.php?_rdr');
die();
}
$limit=$_SESSION['limit'];
$index=1;
$first=true;
$products_ordered='';
while($index<=$limit){
if(isset($_POST[$index]) && $first==true){
$products_ordered.=$_POST[$index].' x Pizza '.$_SESSION['prod_name'][$index];
$first=false;
}
else if(isset($_POST[$index]) && $first==false){
$products_ordered.=', '.$_POST[$index].' x Pizza '.$_SESSION['prod_name'][$index];
}
$index++;
}
//insert order into db
$user_email=$_SESSION['email'];
$total_price=$_SESSION['order_price'];
$query="INSERT INTO orders (email, products_ordered, total_price) VALUES (?, ?, ?)";
$sql_sec=$db_connect->prepare($query);
$sql_sec->bind_param("ssi", $user_email, $products_ordered, $total_price);
$sql_sec->execute();
$result=$sql_sec->get_result();
if(mysqli_num_rows($result)){
exit("Order added successfully!");
}
else{
exit("Error connecting to database!");
}
?>
这太奇怪了,因为数据被正确地添加到我的数据库中,其他时候我使用相同的代码(用于用户注册),它没有任何问题...我检查了所有的东西,我找不到问题。
$query="INSERT INTO orders (email, products_ordered, total_price) VALUES (?, ?, ?)";
$sql_sec=$db_connect->prepare($query);
$sql_sec->bind_param("ssi", $user_email, $products_ordered, $total_price);
$sql_sec->execute();
$result=$sql_sec->get_result();
if(mysqli_num_rows($result)){
exit("Order added successfully!");
}
else{
exit("Error connecting to database!");
}
我得到的错误是:
警告:mysqli_num_rows()期望参数1是mysqli_result,布尔值在第58行的C:\xampp\htdocs\Dream Pizza\add_order.php中给出
连接到数据库时出错!
从get_result()
函数的留档(强调我的):
对于成功的SELECT查询,返回结果集;对于其他DML查询,返回FALSE;对于失败的查询,返回FALSE。
您正在执行一个INSERT
查询,因此get\u result()
将返回false
。
相反,您应该使用mysqli\u stmt.*
函数(或直接访问属性)直接从$sql\u sec
语句中获取查询结果的相关信息:
if(mysqli_stmt_affected_rows($sql_sec)){
// or:
if($sql_sec->affected_rows) {
请注意,您需要检查受影响的_行
属性,而不是num_行
属性。原因是num_rows
返回结果集中的行数。您不是在选择结果集,而是在插入一组新数据。这意味着您实际上对插入的行数感兴趣,它存储在受影响的\u行
属性中。
当我在php中使用MSSQL读取一个包含很长内容的字段时,我得到一个错误 警告:mssql_query()[function.mssql查询]: Unicode仅排序规则中的Unicode数据或ntext数据不能使用DB-库(如ISQL)或ODBC版本3.7或更早版本发送到客户端 我在网上搜索并找到了解决这个问题的方法,发现我需要转换结果以获得可读文本。 然而,我遇到的另一个问题是,文本数据在40
我是< code>sqlite数据库的新手,在我的项目中,我需要在创建数据库后添加数据。我尝试了这种方式,这是我的代码。 公共类主要活动扩展活动 { } 我创建了另一个类来打开sqlite数据库。 公共类MySqlHelper扩展SQLiteOpenHelper{ 公共字符串getBird(int id){ 它给我异常 帮助我避免这种情况,并在创建数据库后立即插入数据。
问题内容: 我是使用$ pdo语句的新手,所以可能很简单,我尚未在php.net上阅读。查询数据库时收到重复的结果。 结果: 查询非常简单: 问题是,在命名的键(,,,)确实存在,数字键没有。查询如何返回这些?以及如何防止他们被退回? 问题答案: 它不是重复的,只是您所使用的当前。要仅获取关联密钥,您需要这样指定:默认情况下,两者都获取。 像这样使用: fetchAll文档 fetch文档
我无法使此表单成功地将数据提交到数据库。我已经验证了数据库/表是否存在(模式如下所示),并且出于某种原因,它没有将其插入数据库。当我尝试提交示例数据时,它不会改变页面,只是坐在那里。发生了什么事? 模式: 食物(PID INT NOT NULL自动递增,主键(PID),名称VARCHAR(20),类型VARCHAR(9),NumCals INT,健康BOOL,注释文本)
我有一个数据框在熊猫如下,这是存储团队赢得的名称和体育场的名称,它赢了如下 现在,我已经在上面的数据框上与group by进行了一些计算,以找到每支球队的数量以及在体育场赢得的比赛,如下所示: 现在,我想将这些计数值添加回我的数据帧。 我面临多个分组列的问题。 任何帮助。
我试图在用户ID下添加新的用户数据,但它将旧数据替换为新数据,并添加另一个“users”和“user\u account\u settings”。 这是我的实时数据库:在此处输入图像描述 我的实时数据库必须是这样的:添加新的用户数据而不将旧数据替换为新数据,也不添加“用户”和“user_account_settings”。 这就是我想要的数据库结构示例:在此处输入图像描述 这是用于添加新用户的代码