草庐IT

re-preparing

全部标签

PHP Prepare 方法在调用两次时不起作用?

我正在使用如下准备方法:$db=newmysqli("localhost","***","***","***");if($db->connect_error){die('ConnectionError');}$id=1;if($stmt=$db->prepare('SELECTnameFROMtableWHEREid=?')){$stmt->bind_param('i',$id);$stmt->execute();//$stmt->close();echo"Success";}else{echo"Somethingbroke:/";}$id=2;if($stmt=$db->prepar

php - 在 Linux : Do I need to re-input previous options? 中第二次使用 ./configure

我正在自己编译PHP和PostgreSQL。我让一切正常。我为PHP编译添加了大约25个选项(使用此方法http://vladgh.com/blog/install-nginx-and-php-php-fpm-mysql-and-apc)。如果我想为PHP添加一个选项(例如pdo),我是否需要重新输入25然后输入启用pg_pdo的行,或者是否存储了以前的选项并且我只需要输入一个新选项?我在这里得到的是./configure方法,对安装postgres没有帮助。我不明白./configure是如何工作的,或者它是否存储了以前的值并且可以添加到。此外,如果我要升级PostgreSQL,如果

php - PDO : Select using a prepared statement returns column name

我正在尝试在准备好列的地方使用准备好的语句即SELECT?FROMusers现在如果我把它正常工作SELECTidFROMusers但是执行第一条语句,值是列名。id=id0=0我做错了什么,或者这可能吗? 最佳答案 不可以,您不能绑定(bind)列名或表名。这里有更多信息EscapingcolumnnamesinPDOstatements 关于php-PDO:Selectusingapreparedstatementreturnscolumnname,我们在StackOverflow上

php - pg_prepare() 准备好的语句(不是 PDO)是否可以防止 SQL 注入(inject)?

我正在处理的目标系统不支持PDO,尽管我在上使用PHP5.1.x寻求防止SQL注入(inject)的解决方案PostGres-DB8.2+。目前没有切换到PDO的机会。我目前的解决方案是pg_prepare-prepared语句://TryingtopreventSQL-Injection$query='SELECT*FROMuserWHERElogin=$1andpassword=md5($2)';$result=pg_prepare($dbconn,"",$query);$result=pg_execute($dbconn,"",array($_POST["user"],$_POS

PHP 和 mySQLi : Do I still need to check user input when using prepare statements?

如果我在mySQLi中使用prepare语句,我是否仍然需要以任何方式转义或检查用户输入。例如,如果我有代码:$members=newmysqli("localhost","user","pass","members");$r_email=$_POST['r_email'];$check=$members->prepare("selectuser_idfromuserswhereemail=?");$check->bind_param('s',$r_email);$check->execute();$check->store_result();if($check->num_rows>0

php - MySQLi Un-prepared-d

这个问题在这里已经有了答案:Whattodowithmysqliproblems?Errorslikemysqli_fetch_array():Argument#1mustbeoftypemysqli_resultandsuch(1个回答)关闭2年前。我正在将我的旧mysql_*查询转换为mysqli,除非我有一个令人沮丧的问题$st=$this->Sql->prepare("INSERTINTOtblPlayerOnline(SteamID,PlayerName,IPAddress,ConnectedDate)VALUES(?,?,?,?)")ordie($this->Sql->er

PHP pdo : prepare() vs transactions

prepare()和transactions是否相互排斥?我有很多构建然后执行的查询,所以听起来我想要的是使用事务;但我在prepare.statment上读到使用bindParam方法消除SQL注入(inject)的页面。有什么方法可以做到这两者吗?这是我现在拥有的代码示例(可能正确也可能不正确):$dbhost=FOO;$dbuser=FOOBAR;$dbpass=RABOOF;$options=array(STUFF);$dbh=newPDO("mysql:host=$dbhost",$dbuser,$dbpass,$options);//Iknowthis^works$dbh-

php - 如何在考虑事务的情况下使用prepare语句向MySQLi中的三个不同表插入数据

什么是同时执行以下SQL语句的完美和最安全的方式,考虑到MySQLi中的事务,以便将数据添加到所有表中,或者当添加过程发生故障时需要回滚数据一个在table上。$conn=newmysqli(DBHOST,DBUSER,DBPASS,DBNAME);$stmt1=$conn->prepare("INSERTINTOstdHouseholder(usersID,parentJob,phoneNumber,address)VALUES(?,?,?,?)");$stmt1->bind_param("ssss",$userId,$parentJob,$phoneB,$addressB);$st

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 - 以下服务未运行 : proxy @ AWS -- after Laravel re-config

我有Laravel应用程序,我学会了使用phpartisanserve和本地Apache运行它。现在我希望在AmazonBeanstalk上运行相同的程序。我已经为PHP7创建了Beanstalk实例。然后我去了AmazonLinux控制台并在那里安装了Composer。我认为这是不必要的步骤。接下来,我使用ZIP压缩了我所有的Laravel项目,并使用Web控制台将其上传到AWS。首先我得到了Forbidden错误如这里所述:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/php-laravel-tutorial.html然