[英]HTML(input)->php->mysql->php->json->HTML render
問題描述:我想用php從HTML輸入中獲取值並在mysql數據庫上運行查詢:SELECT * FROM WHERE(值= HTML輸入中ID的值)
我要做的事情:我編寫HTML輸入:
<input id="akt_djubrenje" type="text" value="1">
然后我寫PHP:
try {
/* Establish the database connection */
$conn = new PDO("mysql:host=localhost;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$result = $conn->query("SELECT * FROM akt_djubrenje WHERE ID_akt = :akt_djubrenje");
$result->execute(array(':akt_djubrenje' => $_POST['akt_djubrenje']));
...
...
etc.
我還提供了輸入字段的php文件數據,並使用AJAX調用了php文件:
function tabela() {
$.ajax({
url: 'getdjubrenje.php', // make this url point to the data file
dataType: 'json',
data:{akt_djubrenje:$("#akt_djubrenje").val()},
async: false,
success:function(json){
var data = new google.visualization.DataTable(json);
alert (json);
// Create and draw the visualization.
visualization = new google.visualization.Table(document.getElementById('tabela_djubrenje'));
visualization.draw(data, {'allowHtml': true});
}
});
}
我的問題是如何從HTML獲取輸入字段值並使用php / ajax獲取
當我鍵入確切的值等時,用“ 1”代替$_POST
...一切正常,因此此代碼存在問題。 有人有解決我問題的想法嗎?
您的問題是您使用PDO::query()
,然后嘗試綁定變量。 這就是query()
工作方式:
PDO :: query()在單個函數調用中執行一條SQL語句,以PDOStatement對象的形式返回該語句返回的結果集(如果有)。
因此,它嘗試立即執行查詢,而不等待您的execute()
調用。 這就是為什么出現“ 您的SQL語法有錯誤;請查看與您的MySQL服務器版本相對應的手冊,以:akt_djubrenje
在第1行:akt_djubrenje
附近使用正確的語法 ”。
您應該做的是使用PDO::prepare()
來准備查詢和綁定變量:
$result = $conn->prepare("SELECT * FROM akt_djubrenje WHERE ID_akt = :akt_djubrenje");
// ^^^^^^
$result->execute(array(':akt_djubrenje' => $_POST['akt_djubrenje']));
我認為您是以GET而不是POST的形式提交請求。 因為您尚未在$ .ajax中將發送類型包括為POST。 請更正。
在$ .ajax({...,})中添加選項type="POST"
;
代替
$result = $conn->query("SELECT * FROM akt_djubrenje WHERE ID_akt = :akt_djubrenje");
$result->execute(array(':akt_djubrenje' => $_POST['akt_djubrenje']));
加
$result = $conn->prepare("SELECT * FROM akt_djubrenje WHERE ID_akt = ?");
$result->execute(array($_POST['akt_djubrenje']));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.