是否可以在PHP中使用使用已棄用的mysql擴展的預準備語句?我有一臺服務器不會很快得到mysqli或PDO,需要對用戶提供的文本進行RLIKE查找。 mysql_real_escape_string()將被使用,但我擔心它會不夠。PHP準備好的語句沒有mysqli或PDO
2
A
回答
2
下面是一個PHP腳本,使用不推薦的mysql API,它演示了使用PREPARE和EXECUTE。我用PHP 5.3.15和MySQL 5.5.29測試了它,它適用於我。但是,我不推薦它。
<?php
$x = 3;
$y = 4;
mysql_connect('localhost', 'root', 'xxxx') or die(mysql_error());
mysql_select_db('test');
mysql_query("SET @sql = 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse'");
mysql_query("PREPARE stmt FROM @sql");
mysql_query("SET @x = $x"); // SQL injection!
mysql_query("SET @y = $y"); // SQL injection!
$result = mysql_query("EXECUTE stmt USING @x, @y");
while ($row = mysql_fetch_assoc($result)) {
print $row["hypotenuse"] . "\n";
}
mysql_close();
正如我在評論中指出,這種失誤的準備查詢的點,因爲你要可能不被信任的內容進行插值到您的SET語句。
您確實應該修復您的PHP安裝並啓用mysqli或PDO_mysql擴展,以便您可以使用真正的API級別準備和執行。
0
看看這個: http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html
你必須有與手動PARAM結合預處理語句的SQL語法。
+0
downvoter可以評論他們爲什麼不同意嗎? – jerrygarciuh 2013-03-04 23:40:57
相關問題
- 1. 準備好的MySQLi語句
- 2. MySQLi準備好的語句?
- 3. php mysqli準備好的語句LIKE
- 4. Mysqli或PDO?準備好的陳述。客戶端準備的語句
- 5. SphinxQL使用php mysqli/pdo並準備好語句
- 6. PHP MySQLi multi_query準備語句
- 7. PHP PDO準備語句
- 8. 轉換爲PDO準備好的語句來自mysqli
- 9. MySQLi /準備好的語句和SQL_CALC_FOUND_ROWS
- 10. mysqli準備好的語句是什麼?
- 11. MySQLi準備好的語句和事務
- 12. mysqli用fetch_assoc準備好的語句
- 13. PDO準備語句
- 14. PDO準備語句
- 15. PDO和PHP/MySQL:PDO準備好的語句有什麼問題?
- 16. PHP準備的語句沒有準備第二條語句
- 17. 沒有提供準備好的語句中的參數的數據MySQLi PHP
- 18. 爲MySQL準備語句PHP(與mysqli的)
- 19. PHP PDO更新準備的語句
- 20. PHP PDO - 輸出準備的語句
- 21. 準備好的mysqli語句中的sql IF語句
- 22. PHP在準備好的語句中準備了語句
- 23. 結合LIKE並在PHP的MySQLi準備好的語句
- 24. PHP mysqli準備語句刪除零
- 25. 準備好的語句不運行MYSQLI PHP
- 26. 刪除mysqli php準備好的語句sql
- 27. PHP MySQLi準備好的語句 - 檢查是否已經存在
- 28. 動態mysqli準備語句
- 29. 準備了mysqli語句
- 30. MySQLi無法準備語句
您使用的PHP版本的年齡?沒有mysqli?它是在5.0版本的php中引入的,對於PDO也是一樣(沒有標準,但是從那以後可以輕鬆安裝)。 – 2013-03-04 23:29:00
這是服務器上的糟糕情況。明年有計劃獲得一個標準的LAMP盒子並將他們的舊代碼遷移到PDO,但目前系統管理員表示FreeBSD有幾個版本過期,他不願意嘗試升級或重新編譯任何東西,以免破損。 – jerrygarciuh 2013-03-04 23:34:34
在用戶空間中,對於PHP4.x和更早的5.0版本,有一個PDO重新實現。見http://xpdo.org/或http://ge.tt/44rtW5a/v/0 – mario 2013-03-04 23:35:56