php - 变量内变量中的 SQL 代码

标签 php mysql

我已经在谷歌上搜索了几个小时,但尚未找到我不断收到的错误的答案。我有以下代码:

$varFirstName = $_POST['FirstName'];
$varPast = $varFirstName.' Past';
$varPresent = $varFirstName.' Present';
$varPastandPresent = $varFirstName.' Past and Present';
$CharacterID = "SELECT CharacterID FROM CHARINFO WHERE FirstName='$varFirstName'";

$sql="INSERT INTO CHARACTER_RELATIONS (RelationshipWith, CharacterID)
VALUES('$varPast', '$CharacterID'),
('$varPresent', '$CharacterID'),
('$varPastandPresent', '$CharacterID')";

mysqli_query($con,$sql)
or  die('Error: ' . mysql_error());

每次运行此命令时,我都会收到“错误:”。如果我使 $CharacterID=49;然后它工作得很好,所以我觉得“SELECT CharacterID FROM CHARINFO WHERE FirstName='$varFirstName'”有问题,但我不知道是什么。有建议吗?

最佳答案

$CharacterID= "从 CHARINFO 中选择字符 ID,其中firstName='$varFirstName'";//这返回一个数组对象。因此,您必须使用 mysqli_fetch_array() 检索每行的值,如下所示
//print_r($CharacterID);exit();//检查数组值,并且执行 $CharacterID。即 mysqli_query($con,$CharacterID);

$varFirstName = $_POST['FirstName'];
$varPast = $varFirstName.' Past';
$varPresent = $varFirstName.' Present';
$varPastandPresent = $varFirstName.' Past and Present';
$Character= "SELECT CharacterID FROM CHARINFO WHERE FirstName='$varFirstName'";// this returns an array object
       $CharacterID= mysqli_query($con,$Character);
        while($row=mysqli_fetch_array($CharacterID)){
        $id=$row['CharacterID '];
        $sql="INSERT INTO CHARACTER_RELATIONS (RelationshipWith, CharacterID)
        VALUES('$varPast', '$id')";      
        mysqli_query($con,$sql)
        or  die('Error: ' . mysqli_error($con));  
} 

关于php - 变量内变量中的 SQL 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34235989/

相关文章:

php - 无法在 CodeIgniter 中获取验证码图像

java - 需要一些建议 : I want to add and display objects in an ArrayList using jTable, 然后将这些记录添加到 SQL 数据库

php - 在 php 中上传时未选择文件

MySQL 将 12 小时添加到时间字段

Mysql 的 IN 和 ORDER BY 子句问题

php - Laravel 5.8 验证错误返回到所有输入的特定 View ->旧的不工作

php - 关于如何修复现有数据库中的 unicode、语言问题的建议

php - 保存 woocommerce 产品后,什么是 wordpress/woocommerce 钩子(Hook)?

PHP 数组。使用 array_push() 将 "$key"=> "$value"对插入数组;

php - 显示按日期排序的mysql表