2014-01-28 13 views
0

所以我很难得到一个使用mysql搜索命令的变量,然后在插入命令的相同脚本中使用它。我究竟做错了什么?获取mysql结果并在同一个脚本中的后续插入命令中使用它

<?php 
$usto= $_GET["usto"]; 
$itena= "item"; 

$sql = 'SELECT sname FROM login'; 

$hostname_Database = "blocked"; 
$database_Database = "blocked"; 
$username_Database = "blocked"; 
$password_Database = "blocked"; 

$mysqli = new mysqli($hostname_Database, $username_Database, $password_Database, $database_Database); 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 



$result = $mysqli->query($sql); 
if ($result) { 
$row = $result->fetch_assoc(); 
$sql = "INSERT INTO pon(mis, take) 
    VALUES({$row['snake']}, '" . $usto . "')"; //Here, I am trying to use the result from the previous select statement for the variable 

$result = $mysqli->query($sql); 
if ($result) { 

...etc. 

} 
} 
?> 
+0

''SELECT sname FROM login WHERE sname ='$ itena'';这是不是会引发错误? – crush

回答

0

您很容易受到SQL injection attacks的影响。阅读这些内容并首先修复你的代码。

之后,认识到​​调用返回结果HANDLE,而不是您在查询中请求的实际字段。你必须FETCH数据行第一:

$result = $mysqli->query($sql); 
$row = $result->fetch_assoc(); 

$sql = ".... VALUES ({$row['name_of_field']} ...)"; 

注意,这仍然容易受到SQL注入..这纯粹是为了说明查询/读取/插入过程。

+0

好吧,它仍然不能正常工作... – user2495313

+0

我已更新我的问题以反映您建议的更改。我做得对吗? – user2495313

相关问题