草庐IT

SQL语句分类

全部标签

php - 游标状态无效,SQLExecDirect 中的 SQL 状态 24000

我需要在PHP中通过ODBC依次调用两个存储过程:#runstoredprocedure1$query="Shipped_Not_Shipped_Rep".$_GET['rep_id'];$result=odbc_exec($dbh,$query);odbc_result_all($result);#runstoredprocedure2$query="Shipped_Not_Shipped_Account".$_GET['account_id'];$result=odbc_exec($dbh,$query);odbc_result_all($result);我在第二次调用存储过程后在

php - 对用户定义函数中的 return 语句感到困惑

我对返回声明几乎没有疑问。a)是否必须在用户定义的函数中定义返回语句?b)如果我只定义一个没有任何参数的return语句,它仍然有效吗?它会返回空值吗?c)下面的函数有效吗?functionadmin_credential($password=0,$email=0){if($password!=0){$password=sha1($password);$query="UPDATEadminsSETpassword='$password'";$result=mysql_query($query);}if($email!=0){$query="UPDATEadminsSETemail='$

php - 如何使用PHP和SQL Server 2008调用存储过程

我正在使用带有PHP的SQLServer2008。我想在PHP中调用存储过程。请指导我。问候 最佳答案 阅读mssql_execute()$conn=mssql_connect($host,$user,$pass);mssql_select_db('somedb',$conn);//Callasimplequery$result=mssql_query('SELECT*FROMsometable',$conn);//Releasetheresultresourcemssql_free_result($result);//Thenex

php - SQL Join问题,如果第二个表为空则返回null

我有2个表。表1(项目):id、name、type表2(project_ratings):project_id,评级有些项目没有评级。SELECT`p`.`id`,`p`.`name`,AVG(pr.rating)FROM(`projects`p)JOIN`project_ratings`prON`p`.`id`=`pr`.`project_id`WHERE`p`.`type`='group'OR`p`.`type`='user';我想返回所有项目,如果没有任何评级,则返回NULL。此查询仅返回具有评级的那些。我试过左连接、右连接、全连接,还是一样。使用CodeIgniter事件记录:

php - 在带有 'IN(.....)' 子句的查询中使用准备好的语句?

有没有(棘手的/非标准的)方法来做到这一点?想要什么$stmt=$db->prepare('SELECTtitleFROMepisodeWHEREidIN(?,?,?,?);工作?因此,如果我想搜索可变数量的ID,我可以这样做吗$ids=array(1,2,3,4,5,6,7);$idSection=implode(array_pad(array(),count($ids),'?'))//Togive?,?,?,?,?,?,?$stmt=$db->prepare('SELECTtitleFROMepisodeWHEREidIN($idSection);$stmp->execute($i

php - 传递数字变量并防止 SQL 注入(inject)

我有这样的查询:SELECTnameFROMmytableWHEREid=$id其中$id由用户提供。我确实为输入变量添加了斜杠。仅使用(int)$id来防止SQL注入(inject)就足够了吗?或者在将它传递给查询之前,我是否必须使用is_numeric检查$id?已编辑:脚本语言为PHP。 最佳答案 是的,使用(int)或intval()转换变量将确保结果只是一个数字,没有其他字符。这是一种很好的防御SQL注入(inject)攻击的方法,但它当然只适用于数字变量。有关SQL注入(inject)防御方法的更多详细信息,请参阅我的演

php - 如何演示二阶 SQL 注入(inject)?

所以我一直在尝试复制二阶SQL注入(inject)。这是我准备的两个基于php的站点的示例模板。我们就称它为选民登记表吧。用户可以注册,然后您可以检查您是否是注册选民。插入.php";$qry=mysql_query($sql_statement,$conn)||die(mysql_error());mysql_close($conn);Echo"Datainsertedsuccessfully";}?>选择.php";$result=mysql_query($sql,$conn);$row=mysql_fetch_row($result);$sql1="SELECT*FROMcana

PHP Postgres PDO 驱动不支持预处理语句?

我是不是疯了,还是PostgresPDO驱动程序不支持准备好的语句,而是在客户端模拟它们?以下代码为prepare()调用返回NOERROR,即使它应该返回。相反,它会在调用execute()时返回适用的错误。编辑:根据DanielVérité的说法,我错了,我添加了他建议的代码。我仍然得到错误。我的代码现在如下所示,添加了Daniel的行。setAttribute(PDO::ATTR_EMULATE_PREPARES,false);//assuggestedbyDaniel$sth=$pdo->prepare('COMPLETEGARBAGE');echo"[prepare]erro

php - 在 MySQLi 准备好的语句中,STMT 代表什么?

MySQLi准备好的语句使用变量$stmt但我找不到STMT代表什么或为什么使用它。对于其他变量(例如$query和$results),我一直很理解,我只是想知道,为什么$stmt,它背后的历史是什么? 最佳答案 $stmt表示单词$statement。越短越好:D 关于php-在MySQLi准备好的语句中,STMT代表什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/217

php - 从表 sql server (php) 获取元数据

我正在尝试从我的数据库(sqlserver)上的表中获取元数据。我执行查询以在SqlManagementStudio上获取该元数据并且它有效但在我执行时在php脚本上显示该错误:$row=sqlsrv_fetch_array($res):“在calc_string_size中遇到意外的SQL类型。”我怀疑问题出在php上查询字符串的构建上,但这不是因为我打印了该查询并且它是正确的。当我在选择(列描述)上添加一个字段时出现问题。有人知道这个问题吗? 最佳答案 你可能有sql_变量查询中的某处。这会引发错误->您必须将特定列转换为VAR