gpt4 book ai didi

php - 如何从 MySQL 和 PHP 获取数组字符串

转载 作者:行者123 更新时间:2023-11-29 11:08:58 26 4
gpt4 key购买 nike

我在 MySQL 数据库中有一些数据,在一张表和一列中,如下所示:

|column||data1 ||data2 |
  1. 如何使用此查询从数据库中获取此数据?

    从表 WHERE 列 IN ('data1','data2') 中选择 id

  2. 如何在这部分定义变量以便查询可以读取字符串数组?

    IN('data1','data2')

最佳答案

tl;博士:

使用mysqli_函数:mysqli_connect() , mysqli_query() , mysqli_fetch_object()等连接并查询数据库。然后使用mysqli_bind_param()将绑定(bind)参数添加到查询中。

对于第一个问题如何从数据库中获取这些数据,以便我可以在此查询中使用它:有多个选项:

  1. 使用mysqli_函数:mysqli_connect() , mysqli_query() , mysqli_fetch_object()等等
  2. PHP Data Objects

*注意:以下示例使用变量作为数据库连接值 - 这些变量可以包含在另一个文件中、预先设置、从 ini 文件中设置(例如,使用 mysqli.default_host 和其他 mysqli_函数)等,就像这个例子:

$serverName = '127.0.0.1'; //MySQL database server running on the same machine
$userName = 'user';
$password = 'data';
$databaseName = 'sampleData';

mysqli_函数:

程序风格:

$connection = mysqli_connect($databaseServer, $userName, $password, $databaseName);
$query = "SELECT id FROM table WHERE column IN ('data1','data2')";
$ids = array(); //for use later on
if ($result = mysqli_query($connection, $query)) {
//fetch objects (or could use mysqli_fetch_array()
while ($obj = mysqli_fetch_object($result)) {
$ids[] = $obj->id; //or use array_push()
}
/mysqli_free_result($result);
}

/* close connection */
mysqli_close($connection );

面向对象的风格:

$mysqli = new mysqli($databaseServer, $userName, $password, $databaseName);
$query = "SELECT id FROM table WHERE column IN ('data1','data2')";
$ids = array(); //for use later on
if ($result = $mysqli->query($query)) {
//fetch objects (or could use fetch_array()
while ($obj = $result->fetch_object()) {
$ids[] = $obj->id; //or use array_push()
}
/* free result set */
$result->close();
}

PDO 函数:

$connection = new PDO('mysql:host='.$databaseServer.';port=3306;dbname='.$databaseName.';charset=UTF8;',$username,$password); 
$query = "SELECT id FROM table WHERE column IN ('data1','data2')";
$ids = array(); //for use later on

foreach ($connection->query($query) as $row) {
$ids[] = $obj->id; //or use array_push()
}

对于您的第二个问题 如何在此部分中定义变量以便查询可以读取数组字符串,您可以:

  1. 使用implode()连接值:

    $query = "从表 WHERE 列中选择 id ('".implode("', '",$values).")";

  2. 使用 mysqli_bind_param() 添加绑定(bind)参数或PDO's bindParam() 。这里的主要好处是,您无需担心在字符串周围添加引号(如果您使用单引号分隔查询,则可能会转义单引号)。

例如与 PDO:

$params = array();
foreach ($values as $index=>$value) {
$params[] = ':value'.$index;
}
$sth = $dbh->prepare('SELECT id FROM table WHERE column IN ('.implode(',',$params).')');

foreach ($values as $index=>$value) {
$sth->bindParam(':value'.$index, $value, PDO::PARAM_STR);
}
$sth->execute();

关于php - 如何从 MySQL 和 PHP 获取数组字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40953337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com