标签: mysqli

为什么面向对象的PHP与mysqli比程序方法更好?

直到最近,我一直在使用mysql*的过程方法.现在我想转向mysqli和面向对象的方法.许多在线资源和书籍都表明,即使在PHP的情况下,OOP也优于程序.在完成一些在线教程之后,我编写了一个连接数据库并选择一个值的小程序.我想知道为什么面向对象的方法更好?加上这是编写OO php网页的正确方法吗?

面向对象的方法

$host = "localhost";
$username = "root";
$password = "";
$dbname = "compdb";

@ $db = new mysqli($host, $username, $password, $dbname);

if(mysqli_connect_errno())
{
    die("Connection could not be established");
}

$query = "SELECT company_id FROM company_basic_details WHERE company_name = 'ABC'";
$result = $db->query($query);

$total_num_rows = $result->num_rows;

echo "The Results Are : <br>";

while($row = $result->fetch_array())
{
    echo $row['company_id'];
}
?>
Run Code Online (Sandbox Code Playgroud)

程序方法

<?php

$host = "localhost";
$username = "root";
$password = "";
$dbname = "compdb";

@ $db = mysqli_connect($host, $username, …
Run Code Online (Sandbox Code Playgroud)

php mysqli procedural-programming object

28
推荐指数
1
解决办法
3万
查看次数

将mysqli结果转换为json

我有一个mysqli查询,我需要格式化为移动应用程序的json.

我已经设法为查询结果生成一个xml文档,但是我正在寻找更轻量级的东西.(请参阅下面的我当前的xml代码)

任何帮助或信息都非常感谢人们!

$mysql = new mysqli(DB_SERVER,DB_USER,DB_PASSWORD,DB_NAME) or die('There was a problem connecting to the database');

$stmt = $mysql->prepare('SELECT DISTINCT title FROM sections ORDER BY title ASC');
$stmt->execute();
$stmt->bind_result($title);

// create xml format
$doc = new DomDocument('1.0');

// create root node
$root = $doc->createElement('xml');
$root = $doc->appendChild($root);

// add node for each row
while($row = $stmt->fetch()) : 

    $occ = $doc->createElement('data');  
    $occ = $root->appendChild($occ);  

    $child = $doc->createElement('section');  
    $child = $occ->appendChild($child);  
    $value = $doc->createTextNode($title);  
    $value = $child->appendChild($value);  

endwhile;

$xml_string = $doc->saveXML();  

header('Content-Type: …
Run Code Online (Sandbox Code Playgroud)

php json mysqli

27
推荐指数
4
解决办法
7万
查看次数

在非对象上调用成员函数bind_param()

我试图在这个准备好的语句中绑定一个变量,但我一直收到错误:

Call to a member function bind_param() on a non-object
Run Code Online (Sandbox Code Playgroud)

调用该函数,并将变量传递给它.当我将函数更改为仅回显变量时,变量在页面上打印正常,但如果我尝试在此处绑定它,则会收到错误.有人可以帮忙吗?

//CALL FROM PAGE ONE
check($username);

//FUNCTION ON PAGE 2
function check($username){
$DBH = getDBH();
$qSelect = $DBH->prepare("SELECT * FROM users WHERE username = ?");
$qSelect->bind_param("s", $username);
}
Run Code Online (Sandbox Code Playgroud)

我知道这里没有完全写出这个功能,但这应该不是问题.我不明白为什么我收到这个错误.

php mysqli prepared-statement

27
推荐指数
3
解决办法
9万
查看次数

mysqli_query和mysqli_real_query之间的区别

mysqli::query和之间有什么区别mysqli::real_query

要么

mysqli_query和之间有什么区别mysqli_real_query

php mysqli

27
推荐指数
3
解决办法
1万
查看次数

php mysql bind-param,如何为更新查询准备语句

我有一个mysqli查询与以下代码:

$db_usag->query("UPDATE Applicant SET phone_number ='$phone_number', 
street_name='$street_name', city='$city', county='$county', zip_code='$zip_code', day_date='$day_date', month_date='$month_date',
 year_date='$year_date' WHERE account_id='$account_id'");
Run Code Online (Sandbox Code Playgroud)

但是,所有数据都是从HTML文档中提取的,所以为了避免错误,我想使用预准备语句.我找到了PHP文档,但没有UPDATE示例

mysqli stmt bind param

php mysql mysqli prepared-statement bindparam

26
推荐指数
1
解决办法
6万
查看次数

mysql和mysqli之间的区别

可能重复:
php中的mysql vs mysqli

mysql_* functions和 之间有什么区别 mysqli_* functions?我们不应该使用背后的技术原因mysql_* functions吗?

php mysql mysqli

26
推荐指数
2
解决办法
8万
查看次数

PHP命令不同步错误

我在PHP/MySQLi中使用两个预准备语句从mysql数据库中检索数据.但是,当我运行语句时,我得到"命令不同步,你现在无法运行命令"错误.

这是我的代码:

    $stmt = $mysqli->prepare("SELECT id, username, password, firstname, lastname, salt FROM members WHERE email = ? LIMIT 1";
    $stmt->bind_param('s', $loweredEmail);
    $stmt->execute();
    $stmt->store_result();
    $stmt->bind_result($user_id, $username, $db_password, $firstname, $lastname, $salt);
    $stmt->fetch();

    $stmt->free_result();
    $stmt->close();

    while($mysqli->more_results()){
        $mysqli->next_result();
    }

    $stmt1 = $mysqli->prepare("SELECT privileges FROM delegations WHERE id = ? LIMIT 1");
    //This is where the error is generated
    $stmt1->bind_param('s', $user_id);
    $stmt1->execute();
    $stmt1->store_result();
    $stmt1->bind_result($privileges);
    $stmt1->fetch();
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

  • 将准备好的语句移动到两个单独的对象.
  • 使用代码:

    while($mysqli->more_results()){
        $mysqli->next_result();
    }
    //To make sure that no stray result data is left in buffer between the …
    Run Code Online (Sandbox Code Playgroud)

php mysql mysqli

26
推荐指数
3
解决办法
2万
查看次数

mysqli :: query():无法获取mysqli

警告:mysqli :: query():无法在第43行的C:\ Program Files(x86)\ EasyPHP-DevServer-13.1VC9\data\localweb\my portable files\class_EventCalendar.php中获取mysqli

以下是我的连接文件:

<?php
if(!isset($_SESSION)) 
{ 
    session_start(); 
}  

// Create array to hold error messages (if any)
$ErrorMsgs = array();

// Create new mysql connection object
$DBConnect = @new mysqli("localhost","root@localhost", 
            NULL,"Ladle");

// Check to see if connection errno data member is not 0 (indicating an error)
if ($DBConnect->connect_errno) {

    // Add error to errors array
    $ErrorMsgs[]="The database server is not available.".
               " Connect Error is ".$DBConnect->connect_errno." ".
               $DBConnect->connect_error.".";
}
?>
Run Code Online (Sandbox Code Playgroud)

这是我的班级:

 <?php 
    class EventCalendar …
Run Code Online (Sandbox Code Playgroud)

php mysql mysqli

26
推荐指数
3
解决办法
12万
查看次数

我可以用mysqli_盲目地替换所有mysql_函数吗?

我在mysql_query()整个项目中都使用过; 但我刚刚了解到mysql_PHP 5.5已被弃用,已在PHP 7中删除.

那么,我想知道我是否可以盲目地替换我项目中的所有mysql_功能mysqli_?例如,只需替换mysql_query()mysqli_query().有不良影响吗?

php mysql mysqli

25
推荐指数
2
解决办法
4万
查看次数

仅使用MySQLi获取一行

如何只使用MySQLi获取一个INDEXED行?我现在正在这样做:

$row = $result->fetch(MYSQLI_ASSOC);
$row = $row[0];
Run Code Online (Sandbox Code Playgroud)

还有另外一种方法吗?

我知道mysqli_fetch_row但它没有返回一个关联数组.

php mysqli

24
推荐指数
1
解决办法
6万
查看次数