在我的php代码中将输入文本中的值发送到我的变量( $ name )时遇到问题:
我将数据发送到edit.php
<form action="edit.php" method="post">
<input type="text" name="edit_text"/>
<input id="send" type="submit"/>
</form>
我的edit.php文件:
<?php
header("Content-Type: application/json");
$name = isset($_POST["edit_text"])?$_POST["edit_text"]:"";
$con=mysqli_connect("localhost","root","root","example");
$result = mysqli_query($con,"SELECT * FROM items WHERE name = '".$name."'");
$row = mysqli_fetch_array($result, MYSQL_ASSOC);
echo json_encode($row);
mysqli_close($con);
?>
我在我的表中寻找记录,然后我返回一个带有查询值的json对象。但它只能起作用如果我将我的项目名称直接放在字符串中:
$result = mysqli_query($con,"SELECT * FROM items WHERE name = 'ITEM'");
我使用getjson和console.log()来查看会发生什么,并返回json对象,其中包含来自my table的正确值。
但是,如果我使用相同的查询,但我的变量 $ name 已经指定了与查询连接的项目的相同名称,则无效。
$result = mysqli_query($con,"SELECT * FROM items WHERE name = '".$name."'");
它始终返回空值,就好像没有从我的输入文本中为我的 $ name 变量分配任何内容。
答案 0 :(得分:0)
我会将您的代码更改为以下内容:
if (isset($_POST['edit_text'])) {
$name = $_POST['edit_text'];
$con=mysqli_connect("localhost","root","root","example");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$result = mysqli_query($con,"SELECT * FROM items WHERE name = '$name'");
$data = array();
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
// Noitcie ^ the 'I' here
$data[] = $row;
}
mysqli_close($con);
echo json_encode($data);
}
另外,如果你使用双引号,则不需要连接变量。
希望这有帮助!