MYSQLI::prepare() ,使用占位符时出错:something

MYSQLI::prepare() , error when used placeholder :something(MYSQLI::prepare() ,使用占位符时出错:something)
本文介绍了MYSQLI::prepare() ,使用占位符时出错:something的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我使用 mysqli,我看到了一些使用占位符的示例,例如 :something 和 ?

我什么时候用过?它的工作原理,但是当我使用 :something 这样的查询

<块引用>

$sql = 插入食物(食物名称)值(:food_name)

然后当我打电话时出现错误

<块引用>

$mysqli_object->prepare($sql);

错误信息听起来像这样

<块引用>

用户错误!你有一个错误SQL 语法;检查手册对应于您的 MySQL 服务器使用正确语法的版本':food_name)' 附近

但是当我使用?作为占位符,一切正常,我使用 PHP 5.3.1 和 MySQL 5.1.41

我错过了什么地方,任何帮助将不胜感激,谢谢

解决方案

mysqli 不支持命名占位符.

PDO 使用 bindParamexecute.

(请注意,每个查询只能使用一次命名占位符.它们并不是非常有用.)

hi im using mysqli and i saw some examples using placeholder like :something and ?

when i used ? its working, but when i used :something in query like this

$sql = INSERT INTO food(food_name) VALUES(:food_name)

then error showed up when i called

$mysqli_object->prepare($sql);

error message sounds like this

User Error! You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':food_name)' at line

but when i used ? as the placeholder, everything working well, i used PHP 5.3.1 and MySQL 5.1.41

am i missed somewhere, any help will be appreciated thanks

解决方案

mysqli does not support named placeholders.

PDO does, using either bindParam or execute.

(Careful, you can only use a named placeholder once per query. They aren't too incredibly useful.)

这篇关于MYSQLI::prepare() ,使用占位符时出错:something的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Warning: mysqli_query() expects at least 2 parameters, 1 given. What?(警告:mysqli_query() 需要至少 2 个参数,1 个给定.什么?)
INSERT query produces quot;Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean givenquot;(INSERT 查询产生“警告:mysqli_num_rows() 期望参数 1 为 mysqli_result,给出布尔值;)
prepared statements - are they necessary(准备好的陈述 - 它们是否必要)
Do I need to escape my variables if I use MySQLi prepared statements?(如果我使用 MySQLi 准备好的语句,是否需要转义我的变量?)
Properly Escaping with MySQLI | query over prepared statements(使用 MySQLI 正确转义 |查询准备好的语句)
Is it possible to use mysqli_fetch_object with a prepared statement(是否可以将 mysqli_fetch_object 与准备好的语句一起使用)