问题标签 [prepared-statement]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 如何确定 PHP 中的 mySQL 准备语句结果列名?
也就是说,使用如下准备好的语句:
我相信我可以使用 $mysqli->field_count 来获取返回的列数(没有尝试过)。
但是有没有办法将每个列名链接到 bind_results 中返回的值?我总是可以尝试从命令本身解析列名,但这不是我想走的路。
语境:
我希望能够定义一个 PHP 接口,将类属性映射到从数据库返回的列名。所以给定
和
我可以使用 bind_results 然后做类似的事情(伪代码)
只取出我需要的两列(col1 和 col2)并将它们分配给 A 类的正确属性。
java - 重用 PreparedStatement
我在我们的代码库上运行了 findbugs,它指出还有两个语句需要关闭。在这部分代码中,我们运行:
对于 3 个不同的查询,重用preparedStatement。在 finally 块中,我们确实关闭了资源:
该语句是否应该在下一个 connection.prepareStatement(query) 之前关闭 还是这个 findbugs 很谨慎?
php - 准备好的声明没有返回任何东西
我知道这个特定的查询有效,因为我用未经准备的程序方法对其进行了测试。这里是:
我意识到,由于我在 section 表中有一个 id 列作为索引,因此我也需要绑定它,因为上面有 php.net 上的声明(再次感谢 Bill)。
这是新代码:
再次感谢所有可以提供建议的人。(我很好奇:当以这种方式使用 OOP 样式的预准备语句时,我发现很难调试。例如,是否有一种简单的方法可以简单地查看实际使用的查询?)
如果我执行以下操作,就像一个简单粗暴的例子:
我的数据出现了,一切都很好。但是,如果我执行以下操作:
我认为这是正确的(当然,如果不是,请随意大喊),我什么也没得到。更重要的是,使用该代码,当我进行 html 验证(以防万一)时,我收到内部服务器警告(500),我认为这是 sql 代码的问题。我只是疯了吗?
php - 在 INSERT 或 UPDATE 中使用 NULL 值和准备好的语句
有时我需要在表中插入一些空值,或者更新它们,将值设置为 NULL。
我在 Postgres 文档中的某处读到这无法完成,但可以用默认值欺骗:
我知道在这个例子中我会得到相同的结果:
但是问题出在准备好的语句上:
同样的问题也适用于更新语句。
我认为有一个解决方案,因为 pgmyadmin 可以做到(或者看起来可以)。
如果你想知道为什么我需要在我的表中使用空值,让我举一个例子(也许有比空值更好的方法?):
假设我有一个users
包含一列的表,该email
列可以为空,但具有唯一索引。2 个空邮件相等,违反唯一约束,而 2 个NULL值不相等,可以共存。
java - 查询不适用于带有preparedStatement 的参数标记
代码摘录
上面的代码执行成功。
但是当我尝试执行这个
它抛出一个异常。“要准备的字符串包含参数标记的无效使用”
这里可能是什么问题?
找到答案,看评论
java - 为什么这个 Java PreparedStatement 抛出 ArrayIndexOutOfBoundsException 0 且 parameterIndex = 1?
下面的方法,当用类似的东西String val = getCell("SELECT col FROM table WHERE LIKE(other_col,'?')", new String[]{"value"});
(这是 SQLite)调用时,会抛出一个java.lang.ArrayIndexOutOfBoundsException: 0 at org.sqlite.PrepStmt.batch(PrepStmt.java:131)
. 谁能同情我在这里的笨拙笨拙并帮助我解释为什么?
在这种setString()
情况下,这将是ps.setString(1, "value")
也不应该是一个问题。显然我错了。
提前谢谢了。
mysql - mySQL 在多行中搜索
我有一张桌子:
我想在 1 个查询/语句中搜索用户名名字和姓氏 .. 我不想要多行 .. 喜欢 .. 让我们说 ..
用户名:maria33 姓名:maria
所以这应该是 1 行 .. 当我搜索 mar%
而不是2!
php - 寻找一个带有描述的简单 mySQLi 类示例
我正在寻找一个在 PHP5 中扩展 mySQLi 类的类的简单但实用的示例。我也对存储过程感兴趣。基本上我需要的是一个实用和可用的类的例子。我通过例子学得最好,不幸的是我找不到任何网站或书籍似乎有一个非常可靠但简单的例子。我看到的所有示例都太复杂了,所以我无法理解,或者它们太简单了,我还不如立即实例化该类并在那里内联。如果有人可以向我提供这样的示例并解释发生的事情,那就太好了。我的长期目标是拥有一个我可以实例化的类来处理数据库的身份验证,然后获取我的 SQL 语句并以变量的形式提供输出。
如果有人愿意花时间帮助我,将不胜感激!,谢谢
java - SQLException: JZ0S4: 无法执行空(零长度)查询。关于准备好的声明
这是一个在连接上执行 PreparedStatements 的类。
我打电话
从另一个类,这抛出和异常
例外是 SQLException:JZ0S4:无法执行空(零长度)查询。在准备好的声明上。我不明白为什么。有谁看到我在这里做错了什么?
谢谢!
php - PHP Mysqli 准备不创建语句对象
我正在使用带有准备好的语句的 php mysqli 扩展,但是在一个查询中它没有创建查询对象。
这是代码:
问题:
if($query = $this->mysqli->connection->prepare($sqlq))
The行if()
返回 false,因此没有创建$query
对象,也没有执行 if 中的任何代码。
echo $sqlq;
回报:
“SELECT id,name FROM productcategories JOIN products ON productcategories.productid = products.id WHERE categoryid=?OR categoryid=?OR categoryid=?OR categoryid=?OR categoryid=?OR categoryid=?”
我看不出有什么问题。
任何帮助将不胜感激,
谢谢,尼科