相关疑难解决方法(0)

使用WHERE子句将数组传递给查询

给定一组id $galleries = array(1,2,5)我想要一个SQL查询,它在WHERE子句中使用数组的值,如:

SELECT *
FROM galleries
WHERE id = /* values of array $galleries... eg. (1 || 2 || 5) */
Run Code Online (Sandbox Code Playgroud)

如何生成此查询字符串以用于MySQL?

php mysql arrays

303
推荐指数
12
解决办法
54万
查看次数

在PHP中排序对象

在PHP中对对象进行排序的优雅方法是什么?我很想完成类似的事情.

$sortedObjectArary = sort($unsortedObjectArray, $Object->weight);
Run Code Online (Sandbox Code Playgroud)

基本上指定我想要排序的数组以及我想要排序的字段.我研究了多维数组排序,可能会有一些有用的东西,但我没有看到任何优雅或明显的东西.

php arrays sorting

43
推荐指数
3
解决办法
5万
查看次数

MySQL Prepared具有可变大小变量列表的语句

你会如何在PHP中编写一个准备好的MySQL语句,每次都需要不同数量的参数?这种查询的一个例子是:

SELECT `age`, `name` FROM `people` WHERE id IN (12, 45, 65, 33)
Run Code Online (Sandbox Code Playgroud)

IN子句id每次运行时都会有不同数量的s.

我脑子里有两种可能的解决方案,但想看看是否有更好的方法.

可能的解决方案1使语句接受100个变量,并使用保证不在表中的虚拟值填充其余变量; 多次调用超过100个值.

可能的解决方案2不要使用准备好的声明; 构建并运行查询严格检查可能的注入攻击.

php mysql sql prepared-statement

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

我有一个整数数组,如何在mysql查询中使用每一个(在php中)?

我有一个充满随机内容项ID的数组.我需要运行一个mysql查询(数组中的id进入WHERE子句),使用数组中的每个ID,按照它们出现在所述数组中的顺序.我该怎么做?

对于数组中的每个ID,这将是一个UPDATE查询.

php mysql arrays

19
推荐指数
2
解决办法
1万
查看次数

使用call_user_func_array的MySQLI绑定参数

请看下面我的代码.我试图将参数数组绑定到我准备好的语句中.我一直在网上浏览,可以看到我必须使用call_user_func_array,但无法让它工作.我得到的错误是:"第一个参数应该是一个有效的回调,'数组'被给出"我可能是错的,但我假设第一个参数可以是一个数组,也许这个错误信息是误导性的.我认为问题是我的阵列在某种程度上是错误的.谁能看到我做错了什么?谢谢.

$type = array("s", "s");
$param = array("string1","anotherstring");

$stmt = $SQLConnection->prepare("INSERT INTO mytable (comp, addl) VALUES (?,?)");

$params = array_merge($type, $param);

call_user_func_array(array(&$stmt, 'bind_param'), $params);
$SQLConnection->execute();
Run Code Online (Sandbox Code Playgroud)

php mysqli bind

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

mysqli bind_param用于字符串数组

我不能让这个工作.我现在已经花了很多时间.

这有效:

$mysqli = new mysqli("localhost", "root", "root", "db");
if(!$mysqli || $mysqli->connect_errno)
{
    return;
}
$query_str= "SELECT name FROM table WHERE city IN ('Nashville','Knoxville')";
$query_prepared = $mysqli->stmt_init();
if($query_prepared && $query_prepared->prepare($query_str))
{       
    $query_prepared->execute();
Run Code Online (Sandbox Code Playgroud)

但是我不能让它与这样的bind_param一起工作:

$query_str= "SELECT name FROM table WHERE city IN (?)";
$query_prepared = $mysqli->stmt_init();
if($query_prepared && $query_prepared->prepare($query_str))
{       
    $cities= explode(",", $_GET['cities']);
    $str_get_cities=  "'".implode("','", $get_cities)."'"; // This equals 'Nashville','Knoxville'

    $query_prepared->bind_param("s", $cities);
    $query_prepared->execute();
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

我也试过call_user_func_array,但似乎无法使语法正确.任何帮助将不胜感激!

编辑:我已经严格尝试了moskito-x的建议和大量的例子列在这里以及其他在SO和随机网站上,没有任何作品.我认为问题可能是PHP 5.4,这就是我的MAMP现在设置的.

php mysqli bindparam

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

mysql选择与id数组匹配的多行

首先:

SELECT `key`, `value` FROM settings
 WHERE `key` = :base_url
    OR `key` = :google_analytics
    OR `key` = :site_domain
Run Code Online (Sandbox Code Playgroud)

这是选择多行的正确方法吗?或者,还有更好的方法?因为它不是真的OR,而是所有这些...所以它听起来不对.

问题2:

这是我的查询选择具有分页的用户:

SELECT id, email, verified, level, name_surname, age, sex, profession, education, location, privacy, suspend FROM users LIMIT :start, :results
Run Code Online (Sandbox Code Playgroud)

有时我想传递一组用户返回此查询,比如array(1,2,3,4,5).

显然,简单地添加WHERE $array不起作用.那我该怎么做?

有时候我不想传递这个id数组,那么当有id列表和没有id列表时如何在状态之间切换?我是否只是在prepare语句中创建php if else?这似乎很明显,但最好问一下最佳做法:)

php mysql sql arrays

5
推荐指数
1
解决办法
4万
查看次数

PHP MySQLI在get_results()中准备语句中断

我对mysqli准备好的陈述很新,其实这是我第一次尝试它.我有这个代码块,我把echos放在每个命令之间,它显示aaa和bbb但不是ccc,我在这里做错了什么?

没有错误出现,只是一个空白屏幕:

<?php

        $mysqli = new mysqli("localhost", "username", "password", "database");

        if (mysqli_connect_errno()) {
                printf("Connect failed: %s\n", mysqli_connect_error());
                exit();
        }

        if ($stmt = $mysqli->prepare("SELECT title FROM `in-the-press`")) {
                $stmt->execute();

                echo 'aaa';

                $stmt->bind_result($title);

                echo 'bbb';

                $result = $stmt->get_result();

                echo 'ccc';

                while ($stmt->fetch()) {
                        printf("%s %s\n", $title);
                }

                echo 'ddd';

                $stmt->close();

        }

        $mysqli->close();

?>
Run Code Online (Sandbox Code Playgroud)

更新通过执行以下操作,我能够实现此功能:

<?php

            $mysqli = new mysqli("localhost", "username", "password", "database");

            if (mysqli_connect_errno()) {
                    printf("Connect failed: %s\n", mysqli_connect_error());
                    exit();
            }

            if ($stmt = $mysqli->prepare("SELECT id, community, map, image FROM `googleMaps`")) …
Run Code Online (Sandbox Code Playgroud)

php mysqli

4
推荐指数
1
解决办法
4645
查看次数

如何使用准备好的语句动态绑定参数?

我正在尝试为用户输入编写准备好的语句。参数编号是可变的,取决于用户输入。我正在尝试这个代码

php代码:

$string          = "my name";
$search_exploded = explode( " ", $string );
$num             = count( $search_exploded );
$cart            = array();
for ( $i = 1; $i <= $num; $i ++ ) {
    $cart[] = 's';
}
$str          = implode( '', $cart );
$inputArray[] = &$str;
$j            = count( $search_exploded );
for ( $i = 0; $i < $j; $i ++ ) {
    $inputArray[] = &$search_exploded[ $i ];
}
print_r( $inputArray );
foreach ( $search_exploded as $search_each ) {
    $x …
Run Code Online (Sandbox Code Playgroud)

php mysqli prepared-statement

4
推荐指数
1
解决办法
1514
查看次数

php mysql查询字符串数组

我正在构建一个我在mysql db中检查的字符串.

eg:
formFields[] is an array - input1 is: string1
array_push(strings, formFields)
1st string and mysql query looks like this:
"select * from my table where id in (strings)"

formFields[] is an array - input2 is: string1, string2
array_push(strings, formFields)
2nd string and mysql query looks like this:
"select * from my table where id in (strings)"

formFields[] is an array - input3 is: string1, string2,string3
array_push(strings, formFields)
3rd string and mysql query looks like this:
"select * from …
Run Code Online (Sandbox Code Playgroud)

php mysql arrays string

2
推荐指数
1
解决办法
6588
查看次数

从类别ID数组中检索文章

我有一个类别ID数组,并希望使用这些类别ID从我的mysql数据库中检索文章.这方面最好的方法是什么?

php mysql

0
推荐指数
1
解决办法
66
查看次数

标签 统计

php ×11

mysql ×6

arrays ×5

mysqli ×4

prepared-statement ×2

sql ×2

bind ×1

bindparam ×1

sorting ×1

string ×1