草庐IT

prepared-statement

全部标签

PHP/PostgreSQL : check if a prepared statement already exists

我将准备好的语句创建为:pg_prepare('stm_name','SELECT...');今天,我在两次声明同名的准备好的语句时遇到了一个问题(错误地调用了两次函数):Warning:pg_prepare()[function.pg-prepare]:Queryfailed:ERROR:preparedstatement"insert_av"alreadyexistsinxxxonline221所以,正如问题标题,有一种方法可以检查是否已经存在具有相同标签的准备语句,如果存在,则覆盖它?我知道这个错误是我的错误,只需在我的代码开头声明准备好的语句即可解决,但我想知道是否有解决方案可

php - 无论如何要使用 OCI 在 PHP 中预览准备好的 SQL 语句?

想知道是否可以准备一个语句,绑定(bind)它,然后预览生成的SQL,如下所示(oci_preview_sql函数是一个占位符)://Gloriousdeclarationofanon-specificquery$statment=oci_parse($handle,"SELECTxFROMyWHEREvariable=:value");//Bindupsomevariablesoci_bind_by_name($statement,':value',$value);...//Locationofinterestoci_preview_sql($statement);//?isther

php - 检查数据库中是否存在电子邮件?

我的类中有这个函数或方法,但是当我向其中插入电子邮件时它不返回行数。我已经测试了mysql连接等,它们都在工作。另请注意,我通过该方法传递的电子邮件已存在于数据库中。我的计划是获取行数,如果它大于零,则意味着我们已经在数据库中有这封电子邮件。publicfunctionuserExist($email){$query="SELECTemailFROM".USER_TABLE."WHEREemail=?";$stmt=$this->_db->prepare($query);$stmt->bind_param("s",$email);if($stmt->execute()){$stmt->

php - 使用准备好的语句插入日期时间

这个问题在这里已经有了答案:UsingMysqlibind_paramwithdateandtimecolumns?(5个答案)关闭去年。我正在尝试使用准备好的语句为图书馆应用程序插入日期时间。这是到目前为止的代码:global$dbh;$query="INSERTINTO`loan`SET`title`=(?),//examplevalue-LordoftheRings`description`=(?),//examplevalue-Trilogy`start_date`=(?),//examplevalue20120701inStringdatatype`end_date`=(?)

php - Doctrine DQL 无效参数编号 : number of bound variables does not match number of tokens

我在这个查询中收到错误无效的参数编号:绑定(bind)变量的数量与标记的数量不匹配。我真的没有看到问题,有什么想法吗?publicfunctiongetByPartial($q,Company$company){$query=$this->createQueryBuilder('u')->join('u.company',':company')->where('u.firstNameLIKE:q')->orWhere('u.lastNameLIKE:q')->setParameters(array('company'=>$company,'q'=>'%'.$q.'%'))->getQu

php - MySQLi 绑定(bind)结果并获取多行

我正在尝试使用MySQLi和绑定(bind)/获取来遍历一组结果。staticfunctiongetConnection(){if(!isset(self::$db_conn)){self::$db_conn=newmysqli(self::$DBSERVER,self::$DBUSER,self::$DBPASS,ModelBase::$DBNAME)ordie(mysql_error(0)."Errorhandlingdatabaseconnection.");}returnself::$db_conn;}以上是getConnection()函数。它位于此类继承的ModelBase

php - 注册页面、电子邮件或密码是否存在检查

我使用准备好的语句用PHP编写了一个注册页面。我的问题很简单。当用户注册时,我想确保他们没有使用与其他人相同的用户名或电子邮件进行注册。因此,作为我的验证程序的一部分,我运行了两个查询,一个是检查电子邮件是否存在,另一个是检查用户名是否存在。我的问题是,有没有更好的方法?我觉得运行多个查询可能会以某种方式牺牲一些性能。这样的查询会显着影响性能吗?我意识到我可以运行"SELECT*FROMtableWHEREusername=?oremail=?",但我希望用户知道他们出了什么问题,而不仅仅是一个通用的“您的用户名或当前正在使用电子邮件,请随时尝试和错误地查找它是什么”。可能是我对速度有

php - 我应该使用 mysqli_real_escape_string 还是应该使用准备好的语句?

这个问题在这里已经有了答案:HowcanIpreventSQLinjectioninPHP?(27个答案)关闭9年前。我应该使用mysqli_real_escape_string还是应该使用准备好的语句?我现在看到了一个解释准备语句的教程,但我看到它们做与mysqli_real_escape_string相同的事情,但它使用更多行准备好的报表有什么好处吗?您认为最好的使用方法是什么?

php - 在准备好的 mysqli 语句中多次使用一个参数

是否可以在准备好的mysqli语句中多次使用一个参数只绑定(bind)一次?像这样$stmt=$mysqli->prepare(SELECT*FROMuserWHEREageBETWEEN?1-2AND?1+2);$stmt->bind_param('i',$myAge);我认为这可以通过PDO实现,但我不知道如何使用mysqli实现。 最佳答案 只是为了结束这个问题:答案是否。如果您只想绑定(bind)一个参数一次并在查询中多次使用它,您必须使用PDO,这可能还需要特殊配置。但根据this,似乎有更多理由使用PDO而不是mysql

php - PDO 准备语句的语法错误

我才刚刚开始使用准备好的语句,我的前几个示例效果很好,但现在我遇到了我不理解的SQL语法。我有一个执行INSERT的函数,它采用关联数组的参数,其中数组的键是字段,数组的值是要插入的值。例如:$arr=array("field1"=>"value1","field2"=>"value2");$this->insert("table",$arr);将执行:INSERTINTOtable('field1','field2')VALUES('value1','value2')但是,当尝试这样做时,出现以下错误:PDOException:SQLSTATE[42000]:Syntaxerroro