2013-04-11 2 views
1

Я пытаюсь вставить данные в базу данных с помощью MYSQLi. Если я использую следующий запрос, данные вставляются;SQLI INSERT Statement

"INSERT INTO table (Name, Phone, Location) VALUES ('test', 'test', 'test')" 

Вместо значения 'test' мне нужно значение переменной, вставленной. Однако следующее не работает.

$test = 'xxx'; 
if ($stmt = $mysqli->prepare("INSERT INTO table (Name, Phone, Location) VALUES (". $test.", 'aaa', 'bbb')")) { 
    $stmt->execute(); 
    $stmt->close(); 
} 

Я пробовал команду «bind_param», но это не сработало.

$stmt->bind_param("ss", $name, $phone, $location); 

Как вставить переменную напрямую? Благодарю.

ответ

2

В вашем случае код должен быть таким:

$test = 'xxx'; 

$stmt = $mysqli->prepare("INSERT INTO table (Name, Phone, Location) VALUES (?, 'aaa', 'bbb')"); 
$stmt->bind_param("s", $test); 
$stmt->execute(); 
$stmt->close(); 

Если вы хотите иметь 3 переменные для этого запроса:

$name = "My name"; 
$phone = "My phone number"; 
$location = "My location"; 

$stmt = $mysqli->prepare("INSERT INTO table (Name, Phone, Location) VALUES (?, ?, ?)"); 
$stmt->bind_param("sss", $name, $phone, $location); 
$stmt->execute(); 
$stmt->close(); 
+1

Итак, это была ошибка, я делал. Мне понадобилось три "s", потому что есть три строки. Огромное спасибо. Принят ответ как можно скорее. – user1334130